我想每小时运行一次 cron 作业来备份我的 mysql 数据库。
当它运行 24 小时后,我希望它再次启动,然后覆盖每个文件。
我想出的最好的办法是:
15 0 * * * /usr/bin/mysqldump -u DBUSERNAME -pDBPASSWORD DBNAME > /PATH/backup1.sql
15 4 * * * /usr/bin/mysqldump -u DBUSERNAME -pDBPASSWORD DBNAME > /PATH/backup2.sql
15 8 * * * /usr/bin/mysqldump -u DBUSERNAME -pDBPASSWORD DBNAME > /PATH/backup3.sql
15 12 * * * /usr/bin/mysqldump -u DBUSERNAME -pDBPASSWORD DBNAME > /PATH/backup4.sql
15 16 * * * /usr/bin/mysqldump -u DBUSERNAME -pDBPASSWORD DBNAME > /PATH/backup5.sql
15 20 * * * /usr/bin/mysqldump -u DBUSERNAME -pDBPASSWORD DBNAME > /PATH/backup6.sql
是否有更有效的方法来执行此操作并执行 cron 作业自动覆盖文件,或者是否需要添加一个开关?
服务器方面的新手,但必须学习!
最佳答案
我会选择类似的东西:
15 */4 * * * /bin/bash /path/to/your/script.sh
每 4 小时的第 15 分钟执行一次 /bin/bash/path/to/your/script.sh
。
然后让 script.sh
为:
num=$(( ($(date "+%H") + 4 ) / 4))
/usr/bin/mysqldump -u DBUSERNAME -pDBPASSWORD DBNAME > /PATH/backup${num}.sql
获取
hour num
0 1
4 2
....
20 6
我使用:
$(date "+%H")
返回小时。$(date "+%H") + 4
返回小时 +4。$(( ($(date "+%H") + 4 )/4))
返回小时 +4 除以 4。
关于mysql - Cron 每 4 小时运行一次,使用不同的名称,然后覆盖 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21042532/