/etc/cron.daily/automysqlbackup 中的以下几行是什么意思?

/etc/cron.daily/automysqlbackup 中的以下几行是什么意思?

我上线了Ubuntu 服务器 20.04 LTS我想做的是设置计划任务为了自动mysql备份公用事业。当我安装时自动mysql备份我注意到它cron.daily/automysqlbackup是在文件夹内创建的etc。该文件中automysqlbackup有以下几行:

#!/bin/sh
test -x /usr/sbin/automysqlbackup || exit 0
/usr/sbin/automysqlbackup

为什么我们需要这些以及它们有什么作用?

我可以删除该文件并为我的用户automysqlbackup设置所有内容吗?sudo crontab -u username -e

答案1

为什么我们需要这些以及它们有什么作用?

#!/bin/sh指定 cron “脚本”运行/bin/sh(它是一个普通的 shell 脚本)。这是一个舍邦

test -x /usr/sbin/automysqlbackup || exit 0检查是否/usr/sbin/automysqlbackup存在并且可执行;如果不是,它会静默退出脚本。如果automysqlbackup删除了该行但其 cron 作业未删除,则此行可用于避免错误- 如果程序包被删除而不是清除,则会发生这种情况。从技术上讲,它的工作原理如下:test -x /usr/sbin/automysqlbackup如果文件可执行,则以代码 0 退出,否则以代码 1 退出。||使 shell 查看上一个命令的退出代码;如果为0,则忽略该行的其余部分,否则执行;exit 0导致 shell 以退出代码 0 退出(无错误)。

/usr/sbin/automysqlbackup运行automysqlbackup

我可以删除该文件并为我的用户automysqlbackup设置所有内容吗?sudo crontab -u username -e

是的你可以;该软件包已正确设置,以便记住您的删除,并且该文件不会在软件包升级时恢复。请注意,您不需要sudo在这里,crontab -e因为用户也可以正常工作。但是,您需要确保用户拥有备份所需的所有权限(在 MySQL 中以及备份所在的任何存储中)。

我建议考虑是否有默认每日 cron 作业不适合您的任何特殊原因;如果没有,请保留它而不是建立自己的。

相关内容