Debian 备份 bashscript

Debian 备份 bashscript

我托管了自己的 Web 服务器,并希望定期备份我的文件。因此我决定编写一个 Bash 脚本。但是,我被困在了下面这个:

#!/bin/bash
# /etc/init.d/backup
# version 0.3.9 2012-08-13 (YYYY-MM-DD)
backup(){

   NOW=`date "+%Y-%m-%d_%Hh%M"`
   tar -czvf  Backup${NOW}.tar.gz /var/www/
   mv Backup${NOW}.tar.gz /home/user/backup/

}
exit 0

我想知道如何运行它,如何让它在每天的特定时间运行。

有什么帮助吗?

答案1

我建议使用 rsync,

Rync 备份脚本 - 这将为今天创建一个备份文件夹,然后今天同步昨天的文件,然后 rsync 今天进行备份。

#!/bin/sh

mkdir -p /storage/backups/`date +\%Y-\%m-\%d`-`date +\%A`/

rsync -avz /storage/backups/`date --date=yesterday +\%Y-\%m-\%d`-`date--date=yesterday    +\%A`/ /storage/backups/`date +\%Y-\%m-\%d`-`date +\%A`/

rsync -avz -e ssh  /var/www/ /storage/backups/`date +\%Y-\%m-\%d`-`date +\%A`/

# Definitions
sevendaysago=$(date --date='6 days ago' +%Y-%m-%d-%A)

# Delete backups from 7 days ago
rm -rf /storage/backups/$sevendaysago

你需要运行这个来让脚本可以运行

chmod u+x script.sh

在 cron 中你只需要通过 crontab -e 添加

@daily sh backupscript

取自我的博客

答案2

首先,这个脚本不会做任何事情。你只是定义了一个函数backup,但没有调用它。只需在下面添加一行,如下所示exit 0

backup

Cron 是定期运行特定任务/脚本的最佳工具。

相关内容