Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

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="[email protected]"
SENDER="[email protected]"
SENDER_PASSWD="sender_password"

注意如果 [email protected] 启用了两部验证,则应该使用 应用专用密码

文件列表配置

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 serverBACKUP_DIR 为备份文件临时目录。

修改 /root/bin/ftpbackup.list 文件,files 为要上传的文件,dirs 为要备份的目录。

运行

cron 定时任务

5 1 * * * /root/bin/ftpbackup.sh >> /var/log/ftpbackup.log 2>&1