通用备份脚本

通用备份脚本

我需要为 Ubuntu 上运行的数据库编写一个备份脚本。我希望这样可以保留前几天的备份,而且最好以对数方式保留之前的几个备份。这些备份应存储在以日期为名称的文件夹中,例如 20191016。应删除以前的备份以释放空间。如果对数不可能,则至少应保留前 N 天的备份。我想使用 cron 来安排备份任务。

是否有任何现有的通用脚本或可执行文件可以帮助我实现这一目标?

我认为这不是特别相关,但正在备份的数据库是 Mongo,我计划使用 mongodump 执行备份,它可以将转储写入标准输出或特定文件或目录。

答案1

您可以使用 备份数据库,mongodump然后使用 备份转储文件rsnapshot,这可以在 rsnapshot 的配置文件中编写脚本。

Arch wiki 有一个很好的总结

这是摘录自rsnapshot.conf

...
# LOCALHOST
backup  /home/      localhost/
backup  /etc/       localhost/
backup  /usr/local/ localhost/
#backup /var/log/rsnapshot      localhost/
#backup /etc/passwd localhost/
#backup /home/foo/My Documents/     localhost/
#backup /foo/bar/   localhost/  one_fs=1,rsync_short_args=-urltvpog
#backup_script  /usr/local/bin/backup_pgsql.sh  localhost/postgres/
# You must set linux_lvm_* parameters below before using lvm snapshots
#backup lvm://vg0/xen-home/ lvm-vg0/xen-home/

# EXAMPLE.COM
#backup_exec    /bin/date "+ backup of example.com started at %c"
#backup [email protected]:/home/ example.com/    +rsync_long_args=--bwlimit=16,exclude=core
#backup [email protected]:/etc/  example.com/    exclude=mtab,exclude=core
#backup_exec    ssh [email protected] "mysqldump -A > /var/db/dump/mysql.sql"
#backup [email protected]:/var/db/dump/  example.com/
#backup_exec    /bin/date "+ backup of example.com ended at %c"

注释掉的行backup_execbackup_script显示调用可执行文件或脚本来执行转储。

相关内容