我托管了自己的 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 是定期运行特定任务/脚本的最佳工具。