Eu sugeriria executar o script do lado de envio e usá-lo para acionar a parte de recebimento. Não faz sentido iniciar um cron job nos dois lados ...
Você pode emitir comandos em seu servidor remoto a partir do servidor local usando ssh.
O script no final do envio é o seguinte:
#!/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
A entrada do Cron no final do envio é a seguinte:
30 0 * * * /scripts/zfssendBigData.sh > /tmp/cron1.log
O script no final da recepção é o seguinte:
#!/bin/sh
/usr/bin/nc -l -p 8024 | zfs receive -F vid-zfs-bak/bigdata
A entrada do Cron no final do recebimento é a seguinte:
29 0 * * * /scripts/zfsreceiveBigData.sh > /tmp/cron2.log
cron1.log e cron2.log estão vazios.
mailx no final do recebimento mostra:
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
Coisas que valem a pena notar:
A parte de instantâneo funciona bem, os instantâneos são criados. Então eu sei que o script está sendo executado. É especificamente o envio / recebimento que não está funcionando.
Eu tentei usar caminhos absolutos para todos os programas, como / usr / bin / nc, / usr / sbin / zfs, etc.
Eu verifiquei que os relógios de ambos os sistemas estão dentro de 10 segundos um do outro.
Ambos os sistemas Solaris 11.3
Eu sugeriria executar o script do lado de envio e usá-lo para acionar a parte de recebimento. Não faz sentido iniciar um cron job nos dois lados ...
Você pode emitir comandos em seu servidor remoto a partir do servidor local usando ssh.
Tags bash cron zfs shell-scripting solaris-11