自动文件备份管理?

自动文件备份管理?

我有一堆文件(总共约 50 MB),我想每 20 分钟备份一次。每个备份都应压缩为单个 (.tar.gz) 文件,并且应删除超过 24 小时的备份。此过程应自动完成。

(我想这个功能是人们广泛追求的)

除了为此编写自己的应用程序外,我还有什么选择?

答案1

有成千上万个选项。既然你提到了 ubuntu,我就使用了https://ubuntu.com/server/docs/backups-shell-scripts 并为您进行了修改,以便删除超过 24 小时的档案。

然后你可以每 20 分钟从 cron 作业运行一次脚本,例如

*/20 * * * * /路径/到/备份/脚本

#!/bin/bash                                                                                                                                                                                                                                   

# What to backup.                                                                                                                                                                                                                             
backup_files="/home /var/spool/mail /etc /root /boot /opt"

# Where to backup to.                                                                                                                                                                                                                         
dest="/mnt/backup"

# Create archive filename.                                                                                                                                                                                                                    
timestamp=$(date +%Y%m%d_%H%M%S)
hostname=$(hostname -s)
archive_file="$hostname-$timestamp.tgz"

# Backup the files using tar.                                                                                                                                                                                                                 
tar czf $dest/$archive_file $backup_files

# Cleanup backup archives older than 24h                                                                                                                                                                                                      
find $dest -name "*.tgz" -type f -mtime 1 -delete

答案2

要每 20 分钟生成一次备份,请使用 cron。您的 crontab 可以是

0,20,40 * * * *  cd /PATH; for file in *; do tar --backup=numbered -czf $file.tgz $file; done

--backup选项生成版本化备份,如file.tgz.~1~file.tgz.~2~等等。

要删除超过 24 小时的文件,您可以使用另一个 crontab 条目,例如

30 * * * *      find /PATH -name '*.tgz*' -mtime +1 -exec rm -f {} +

这将每半小时运行一次,查找名称中带有 tgz 且修改时间超过 24 小时(一天)的文件。

相关内容