|
||
---|---|---|
.. | ||
README.md | ||
backup.conf | ||
backup.sh | ||
ftpbackup.list | ||
ftpbackup.sh |
README.md
服务器备份脚本
指定要备份的文件和目录列表, 使用 zip
加密备份文件到指定目录,如 Dropbox
同步目录。压缩文件密码为随机密码,会通过 gmail
发送到指定邮箱。
下载
mkdir /root/bin
cd /root/bin
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/backup/backup.sh
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/backup/backup.conf
chmod +x backup.sh
依赖
需要安装 zip
用来压缩文件, sendemail
用来发送密码通知邮件。
apt-get install zip libnet-ssleay-perl libio-socket-ssl-perl sendemail
配置
修改 backup.conf
文件,主要修改
邮件配置
EMAIL="receiver@gmail.com"
SENDER="sender@gmail.com"
SENDER_PASSWD="sender_password"
注意如果 sender@gmail.com
启用了两部验证,则应该使用 应用专用密码
文件列表配置
FILES=(
"/root/.vimrc"
"/root/.bashrc"
"/root/.my.cnf"
"/root/.screenrc"
"/root/.ssh/config"
)
目录列表配置
DIRS=(
"/etc"
"/root/bin"
"/root/bashfiles"
"/var/www"
"/home/git"
)
忽略目录中的文件或文件夹
注意如果备份时要跳过目录中的文件或子目录,可以在目标目录中添加一个 exclude.lst
文件,如 /var/www/exclude.lst
文件内容参考如下
*/10meg.test
*/cache/*
/var/www/zips/*
/var/www/downloads/*
/var/www/share/*
/var/www/wordpress/dl/*
/var/www/wordpress/mp3/*
/var/www/wordpress/d/*
/var/www/wordpress/wp-content/languages/*
/var/www/wordpress/wp-content/plugins/*
/var/www/wordpress/wp-content/themes/*
/var/www/wordpress/wp-content/uploads/2011/*
备份所有文件
如果某次备份要备份所有的文件,即忽略 exclude.lst
文件,可以添加 all
参数运行
/root/bin/backup.sh all
备份 mysql 配置
BACKUP_MYSQL=true
如果启用 mysql
备份, 则需要添加 /root/.my.cnf
文件,内容示例如下
[mysqldump]
user=root
password=123456
备份压缩配置
ZIP_COMPRESS=true
如果不启用压缩,则会以存储模式压缩文件和文件夹。
备份保存路径
TARGET_DIR="/root/Dropbox"
备份完成后会移动到 TARGET_DIR
, 示例中为 dropbox
的默认同步路径,可以将文件同步到 dropbox
服务器。安装 dropbox
请参考 https://www.dropbox.com/install-linux
日志路径
LOG_FILE="/var/log/backup.log"
会将备份过程中的主要操作输出到日志中。
cron 定时任务
10 */4 * * * bash /root/bin/backup.sh >/dev/null 2>&1
30 02 * * 0 bash /root/bin/backup.sh all >>/dev/null 2>&1
online.net ftp 备份脚本
下载
mkdir /root/bin
cd /root/bin
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/backup/ftpbackup.sh
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/backup/ftpbackup.list
chmod +x ftpbackup.sh
配置
修改 /root/bin/ftpbackup.sh
中的 SERVER
为账户下的 FTP server
,BACKUP_DIR
为备份文件临时目录。
修改 /root/bin/ftpbackup.list
文件,files
为要上传的文件,dirs
为要备份的目录。
运行
cron
定时任务
5 1 * * * /root/bin/ftpbackup.sh >> /var/log/ftpbackup.log 2>&1