用于自动数据库备份到日期前缀文件的 cronjob

pba*_*auf 13 cron backup mysql database

我正在使用最新的 Linux Mint。我想知道是否可以为数据库备份创建一个特殊的 cronjob。

在我的/etc/cronjob文件中,我有以下代码:

# Minute   Hour   Day of Month       Month          Day of Week        Command    
# (0-59)  (0-23)     (1-31)    (1-12 or Jan-Dec)  (0-6 or Sun-Sat)                
30        4          *            *                1-6            /home/users/backup.sh
Run Code Online (Sandbox Code Playgroud)

在我的/home/users/backup.sh我有:

mysqldump -uroot -p MyDatabase > /home/users/backup_MyDB/full_myDB.sql
Run Code Online (Sandbox Code Playgroud)

而不是full_myDB.sql我想要像2014-04-04_full_myDB.sql根据我们拥有的日期动态添加日期的地方。

如果 SQL 备份文件早于一周,我希望 cronjob自动删除它。

Gra*_*eme 15

使用 GNU date(Linux Mint 上的默认设置),您可以执行以下操作:

mysqldump -uroot -p MyDatabase >/home/users/backup_MyDB/$(date +%F)_full_myDB.sql
Run Code Online (Sandbox Code Playgroud)

要删除超过 1 周的文件:

find /home/users/backup_MyDB -type f -mtime +7 -exec rm {} +
Run Code Online (Sandbox Code Playgroud)

尽管通常在删除之前查看要删除的内容(至少在测试脚本时)是明智的,但这样做:

find /home/users/backup_MyDB -type f -mtime +7
Run Code Online (Sandbox Code Playgroud)

  • @Ramesh,很高兴我为了改变而击败了其他人 - 通常我发帖并且有人已经有了类似的答案。 (2认同)