我目前正在创build一个备份脚本,它使用屏幕在屏幕会话中使用rsync启动备份作业。 备份作业的启动如下。
screen -dmS backup / usr / bin / rsync …
一旦rsync作业完成,屏幕会话将自动终止。 为了确保备份成功,我想检查rsync作业的退出代码,但不幸的是我真的不知道如何在屏幕终止后得到退出代码。
如果rsync作业成功或不成功,是否有人有一个好主意如何自动检查?
如果有人这样做会很好。
我已经想过使用临时文件,但是像这样:
screen -dmS myScreen“rsync -av …; echo $?> / tmp / myExitCode”,但这不幸的是不起作用。 然后,我想像下面的例子中使用stderr:
screen -dmS myScreen“rsync -av …> 2 / tmp / rsync-sterr
我的想法到目前为止都没有解决,因为当我使用上面的命令时,stderr不会写入。 :-(?
如果有人有一个好主意,甚至是一个解决scheme,这将是伟大的。
干杯,
贝蒂娜
将sh -c "commands"传给屏幕,如果你想使用redirect,那么:
screen -dmS name sh -c '{ rsync -av ... 2>&1; echo $?; } >~/rsync-status'
另外,它是fd>file ,而不是>fd file 。 要redirectstderr,你可以使用2>foo 。