vps自动备份shell脚本代码

发布时间:2020-05-04编辑:脚本学堂
本文介绍了一个vps主机上的自动备份shell脚本,vps自动备份shell脚本,用于linux系统上一键备份和管理mysql数据库以及web数据,并自动上传至远程备份服务器,有需要的朋友参考下。

本节内容:
自动备份网站内容的shell/ target=_blank class=infotextkey>shell脚本

一、特点与功能
1、纯shell脚本,使用简单,技术门槛低,容易修改,删除即可卸载。

2、可指定数据备份频率及保存的备份数量,能自动删除不必要的旧备份。

3、可指定多个需要备份的mysql/ target=_blank class=infotextkey>mysql数据库,甚至排除某个数据库不备份。

4、可指定多个需要备份的数据目录,甚至支持二级目录打包备份。

5、支持本地和多重备份(ftp,scp,amazon s3),异地备份可选完全和增量备份。

二、下载与使用
2.1、下载脚本
https://gist.github.com/1505857
 

复制代码 代码示例:
wget http://wangyan.org/download/shell/vps_auto_backup.sh
chmod 100 vps_auto_backup.sh
mkdir /var/shell && mv vps_auto_backup.sh /var/shell

2.2、设置cron守护进程
自动执行频率可随意设置,一般一小时一次就足够了。
 

复制代码 代码示例:
crontab -e
0 * * * * /bin/bash  /var/shell/vps_auto_backup.sh

2.3、安装附加软件
如果你需要进行远程ftp、scp备份,则需安装lftp、expect。
 

复制代码 代码示例:
yum -y install lftp expect #centos
apt-get -y install lftp expect #ubuntu

三、配置选项
 

复制代码 代码示例:

# 备份数据存放目录

backup_dir="/root/vps-bak"
mysql备份选项
# 是否启用mysql备份,0是关闭,1是启用。

enable_mysql_backup="1"
# 数据库备份时间间隔,1小时=3600秒。

mysql_backup_cycle="43200"
# 数据库备份保存数量,默认保存最近4次备份。
# 例如:一天备份二次,需要保存最近二天备份,则此处填"4"

mysql_backup_num="4"
# 数据库主机、用户名、密码。

mysql_host="localhost"
mysql_user="root"
mysql_pwd="123456"
# 需要备份的数据库名,多个数据库要用空格分开,all表示所有数据库。

mysql_db_names="all"
# 需要排除备份的数据库名,多个数据库要用"|"分开。

mysql_exclude_db="phpmyadmin|information_schema|performance_schema"
web备份选项
# 是否启用web数据本地备份,0是关闭,1是启用。

enable_local_backup="1"
# 数据备份时间间隔,1小时=3600秒。

www_backup_cycle="86400"
# 数据备份保存数量,默认保存最近2次备份。
# 例如:一天备份一次,需要保存最近二天备份,则此处填"2"

www_backup_num="2"
# 需要备份的数据源目录,多个目录要用空格分开。

www_backup_dirs="/home /var/www"
# 需要备份的数据源目录深度,文件夹=0,文件夹+子文件夹=1

www_backup_depth="1"
ftp备份选项
# 是否启用远程ftp备份,0是关闭,1是启用。

enable_ftp_backup="0"
# ftp备份间隔,0表示禁用,1小时=3600秒

ftp_backup_cycle="0"
# ftp备份模式,完全备份=0,增量备份=1

ftp_backup_mode="0"
# 远程ftp存储备份文件夹,如果不存在,则脚本会自动创建。

ftp_remote_dir="vps-bak"
# 远程ftp主机、用户名、密码。

ftp_hostname="192.168.8.128"
ftp_username="test"
ftp_password="test"
scp备份选项
# 是否启用远程scp备份,0是关闭,1是启用。
# 注意:为支持免证书登陆,需安装“expect”(yum -y install expect)

enable_scp_backup="0"
# scp备份间隔,0表示禁用,1小时=3600秒

scp_backup_cycle="0"
# 远程主机、用户名、密码。
scp_host="192.168.8.128"
scp_user="root"
scp_passwd="123456"
# 远程主机存储备份文件夹。
scp_remote_path="/root/vps-bak"
amazon s3备份选项
# 是否启用amazon s3备份,0是关闭,1是启用。
enable_s3_backup="0"
# amazon s3 备份间隔,0表示禁用,1小时=3600秒

s3_backup_cycle="0"
# amazon s3备份模式,完全备份=0,增量备份=1

s3_backup_mode="0"
# amazon s3 bucket名称,如果不存在,则脚本会自动创建。

s3_bucket="vps-bak"
# amazon access key

access_key_id="123456"
# amazon secret access key

secret_access_key="123456"