发送端脚本如下:
#!/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从本地服务器在远程服务器上发出命令。