ZFS发送脚本在手动运行时工作,但不在Cron中(已经尝试过常见的解决scheme)

发送端脚本如下:

#!/bin/sh #Variables bigdata=vid-zfs-live/bigdata today=`gdate +%m-%d-%y` yesterday=`gdate -d'yesterday' +%m-%d-%y` #Actions zfs snapshot -r "$bigdata"@"$today" zfs send -i "$bigdata"@"$yesterday" "$bigdata"@"$today" | nc -w 700 192.168.10.11 8024 

发送端的Cron条目如下:

 30 0 * * * /scripts/zfssendBigData.sh > /tmp/cron1.log 

接收端脚本如下:

 #!/bin/sh /usr/bin/nc -l -p 8024 | zfs receive -F vid-zfs-bak/bigdata 

接收端的Cron条目如下:

  29 0 * * * /scripts/zfsreceiveBigData.sh > /tmp/cron2.log 

cron1.log和cron2.log都是空的。

在接收端的mailx显示:

 Your "cron" job on atm-frontend-02 /scripts/zfsreceiveBigData.sh produced the following output: nc: -w has no effect with -l cannot receive: failed to read from stream 

值得注意的事情:

快照部分工作正常,创build快照。 所以我知道脚本正在运行。 这是特别是发送/接收不工作。

我试图使用绝对path到/ usr / bin / nc,/ usr / sbin / zfs等所有程序。

我validation了两个系统的时钟都在10秒内。

两个系统都是Solaris 11.3

我build议从发送端执行脚本并使用它来触发接收部分。 在两端开始cron工作是没有意义的…

您可以使用ssh从本地服务器在远程服务器上发出命令。