Скрипт окончания отправки выглядит следующим образом:
#!/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
На что стоит обратить внимание:
Часть снимков работает нормально, снимки создаются. Итак, я знаю, что сценарий запущен. В частности, не работает отправка / получение.
Я пробовал использовать абсолютные пути ко всем программам, таким как / usr / bin / nc, / usr / sbin / zfs и т. Д.
Я проверил, что часы в обеих системах отличаются друг от друга в пределах 10 секунд.
Обе системы Solaris 11.3
Я бы предложил выполнить сценарий на стороне отправителя и использовать его для запуска части приема. Нет смысла начинать работу cron на обоих концах ...
Вы можете запускать команды на удаленном сервере с локального сервера с помощью ssh.