我上线了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 作业不适合您的任何特殊原因;如果没有,请保留它而不是建立自己的。