cronjob仅在连接到公司网络时用于备份

cronjob仅在连接到公司网络时用于备份,cron,backup,crontab,rsync,Cron,Backup,Crontab,Rsync,我正在运行cronjob,以便将我的硬盘与公司网络中服务器上的文件夹进行同步。这发生在我的笔记本电脑上,我也在网络之外使用它 我的crontab如下所示: ping -c2 server >/dev/null 2>&1 && rsync --delete... */30****rsync--delete-azvv-e ssh/Users/user/Work/Folderuser@server:/home/user/BACKUP/ 如何使cron仅在服务器可用

我正在运行cronjob,以便将我的硬盘与公司网络中服务器上的文件夹进行同步。这发生在我的笔记本电脑上,我也在网络之外使用它

我的crontab如下所示:

ping -c2 server >/dev/null 2>&1 && rsync --delete...
*/30****rsync--delete-azvv-e ssh/Users/user/Work/Folderuser@server:/home/user/BACKUP/

如何使cron仅在服务器可用时运行此作业


非常感谢

首先,您需要一种方法来确定服务器是否可用<代码>ping可能足够了,但可能并不理想。作为穷人的解决方案,您可以像这样预先设置原始命令:

ping -c2 server >/dev/null 2>&1 && rsync --delete...

这意味着,只有在
ping
成功的情况下,cron才会运行
rsync

谢谢。不幸的是,这不起作用。你能帮我一个忙,给我解释一下你提供的密码吗。我知道两次ping的输出进入了/dev/null/的天堂,但是2&1意味着什么呢?它意味着将文件描述符2重定向到与文件描述符1相同的目标,在这种情况下,2>&1意味着将STDERR发送到与STDOUT相同的目标,即,bit bucket.Joao很好地解释了2>&1的功能,但是您能详细说明哪些功能不适合您吗?我真的不知道哪里出了问题,因为我添加了行ping-c2 server>/dev/null 2>&1&&rsync-azvv-e ssh/Users/user/Work/Folderuser@server:/home/user/BACKUP/to my crontab,它刚刚停止工作。您能不能在终端中启动一个
ping-c2服务器
,检查ping是否真的在工作,并且没有被中间的防火墙阻止?