我有一个简单的 bash 脚本,它执行一个rsync
命令,将大量文件(4TB+)从远程服务器同步到我的本地计算机。crontab -e
我已为此脚本设置了一个时间表,使其每天在固定时间运行。
crontab 条目如下所示:0 0 * * * bash /home/scripts/backup.sh
因此我通过 bash 执行脚本。三个问题:
此执行管道中是否有任何内容会超时?RSYNC、BASH 或 CRON 会超时吗?rsync 命令可能需要几个小时才能执行。
CRON 是否可以防止脚本交叉,即当下一个计划即将执行时脚本仍在运行?是否有命令或选项可以做到这一点?
是否有执行日志(来自 rsync、cron 或 bash)可以让我检查进度、诊断任何错误等?
答案1
是的,当然,即使没有看到脚本,“`rsync 命令将大量文件(4TB+)从远程服务器同步到我的本地机器。”可能会超时。
不,没有控制重叠执行的 cron
功能。这取决于你。请参阅man flock
、、man lockfile
。man dotlockfile
您的脚本可以记录任何它想要记录的内容。您的脚本STDOUT
会通过电子邮件发送到$USER
本地。如果电子邮件发送失败,dead.letter
则会创建一个名为的文件。我不记得在哪里,但在运行
sudo /etc/cron.daily/mlocate
一个简单的locate dead.letter
就应该可以找到它。(顺便说一下,/etc/cron.daily/mlocate
使用flock
。看看它)。
journalctl $(type -p cron)
将向您显示有关 的系统日志cron
。
现在,谈谈使用 AskUbuntu。请阅读 https://discourse.ubuntu.com/t/ask-ubuntu/21和https://askubuntu.com/help/how-to-ask,并且每次只问一个问题 - 它可以帮助后续搜索者。