Linux服务器一键备份脚本解释

2017年05月12日

原创内容,转载请注明出处: https://www.myzhenai.com.cn/post/2636.html https://www.myzhenai.com/thread-18004-1-1.html
关键词: Linux 服务器 一键备份 脚本
我写过好几个类似的教程,但这个可能是最完整的, 因为这个的脚本有注释, 同时有视频演示,所以这个教程相比以前那几个要详细一些. 其实服务器备份无非就是以下几个步骤, 在我们要迁移服务器或者日常备份的时候,这样的脚本都能精简自己的工作量. 服务器备份的步骤如下:
一: 备份原始数据(即网站的各种源码和附件数据)
二: 备份数据库数据(我这里是以单独一个数据库进行备份)
三: 压缩数据(将网站数据和数据库数据进行打包压缩)
四: 下载数据或备份到第三方平台
五: 删除打包压缩的备份数据以免泄露
所以脚本的运行流程也就是按照这个思路来进行的, 如果你的服务器配置好的话, 可以将脚本扔到crond里定时执行, 这个脚本需要安装rar包,因为我们需要用到rar来进行加密打包, Linux下默认的gizp和tar等打包压缩都是不能加密码的, 为什么要加密码,就是因为我们需要保护我们的数据安全.
Linux下rar压缩解压缩程序rar的安装使用方法 https://www.myzhenai.com.cn/post/1040.html
Linux下使用crontab添加定时任务 https://www.myzhenai.com.cn/post/1628.html
演示视频 链接: https://pan.baidu.com/s/1dE0VfzF 密码: sca6
脚本注释

# !/bin/bash
##############################################################################################################################################
# Author: RucLinux 海南胡说 海南仙岛
# Website: www.myzhenai.com www.myzhenai.com.cn www.haikou-china.com jiayu.mybabya.com www.0898-shop.com
##############################################################################################################################################
ac=`date +%Y`
#定义一个变量获取时间部份的年
bc=`date +%m`
#定义一个变量获取时间部份的月
cc=`date +%d`
#定义一个变量获取时间部份的日
mkdir /var/www/back
#创建一个空目录
cd /var/www/
#切换目录
cp -ar /var/www/wordpress back/
#复制网站目录到备份目录
cp -ar /var/www/cms back/
#复制网站目录到备份目录
cp -ar /var/www/Discuz back/
#复制网站目录到备份目录
mysqlcheck -Ao -uroot -pNGNlYm-NDU5Mm-NlMmFi-NmM1NW-ZhODc0-MjQ2Z
#清除mysql数据库缓存和垃圾信息,-u是指定用户名参数 -p是添加密码参数, NGNlYm-NDU5Mm-NlMmFi-NmM1NW-ZhODc0-MjQ2Z 这是数据库用户root的密码
mysqldump -u root -pNGNlYm-NDU5Mm-NlMmFi-NmM1NW-ZhODc0-MjQ2Z cms |gzip > /var/www/back/cms"_"$ac"_"$bc"_"$cc.sql.gz
#备份cms数据库到指定路径下, cms是数据库名, NGNlYm-NDU5Mm-NlMmFi-NmM1NW-ZhODc0-MjQ2Z 是密码, gzip是压缩
mysqldump -u root -pNGNlYm-NDU5Mm-NlMmFi-NmM1NW-ZhODc0-MjQ2Z Discuz |gzip > /var/www/back/Discuz"_"$ac"_"$bc"_"$cc.sql.gz
#备份cms数据库到指定路径下, cms是数据库名, NGNlYm-NDU5Mm-NlMmFi-NmM1NW-ZhODc0-MjQ2Z 是密码, gzip是压缩
mysqldump -u root -pNGNlYm-NDU5Mm-NlMmFi-NmM1NW-ZhODc0-MjQ2Z wordpress |gzip > /var/www/back/WordPress"-"$ac"-"$bc"-"$cc.sql.gz
#备份cms数据库到指定路径下, cms是数据库名, NGNlYm-NDU5Mm-NlMmFi-NmM1NW-ZhODc0-MjQ2Z 是密码, gzip是压缩
cd back
#切换到back目录
tar -czvf cms"_"$ac"_"$bc"_"$cc.tar.gz cms/*
#压缩网站根目录下的cms目录, 这是cms网站的根目录
tar -czvf wordpress"_"$ac"_"$bc"_"$cc.tar.gz wordpress/*
#压缩网站根目录下的wordpress目录, 这是wordpress博客的根目录
tar -czvf Discuz"_"$ac"_"$bc"_"$cc.tar.gz Discuz/*
#压缩网站根目录下的Discuz目录, 这是Discuz论坛的根目录
cd ..
#返回上一级目录, 空格后边是两个半角符号的点
rm -rf back/cms
#因为这个目录已经被打包压缩了,所以现在删除备份目录里的这个文件夹和里边的文件,免得重复备份.
rm -rf back/Discuz
#因为这个目录已经被打包压缩了,所以现在删除备份目录里的这个文件夹和里边的文件,免得重复备份.
rm -rf back/wordpress
#因为这个目录已经被打包压缩了,所以现在删除备份目录里的这个文件夹和里边的文件,免得重复备份.
rar a toutiao"_"$ac"_"$bc"_"$cc.zip back/* -pYWNiND-MGNiYT-ZiYWI2-NjE1NG-JmNDhk-YzBkMj -z
#PassWord: YWNiND-MGNiYT-ZiYWI2-NjE1NG-JmNDhk-YzBkMj
#将back备份目录里的文件再次打包, 这次是用rar来压缩打包并添加密码. -p 是添加密码参数 -z 是添加注释参数, 
#Reading comment from stdin 看到这行后请输入您的注释信息, 输入完成后按一次回车并再次按下键盘上的#Ctrl键和D键,就会进入压缩.
##以下这一段是一键压缩的脚本
#password=`YWNiND-MGNiYT-ZiYWI2-NjE1NG-JmNDhk-YzBkMj`
##将密码存放到password变量中
#echo '#!/usr/bin/expect' >> ServerBack.sh
##将文本写入文件
#echo 'spawn rar a server"_"$ac"_"$bc"_"$cc.zip back/* -p$password -z' >> ServerBack.sh
##将文本写入文件
#echo 'expect "Reading comment from stdin"' >> ServerBack.sh
##将文本写入文件
#echo 'send "Password:$password"' >> ServerBack.sh
##将文本写入文件
#echo 'send "\04\04"' >> ServerBack.sh
##将文本写入文件
###\04 =CTRL+D
#echo 'expect eof' >> ServerBack.sh
##将文本写入文件
#chmod 777 ServerBack.sh
##将文件权限更改变777,即可运行
#./ServerBack.sh
##运行一键压缩脚本
###
cp -ar toutiao"_"$ac"_"$bc"_"$cc.zip /var/www/cms/
#复制压缩后的zip文件到任意一个网站的目录下,这样可以方便下载到本地.
rm -rf back
#删除备份文件back目录
rm -rf toutiao"_"$ac"_"$bc"_"$cc.zip
#删除打包后的备份文件
rm -rf ServerBack.sh
#删除一键压缩脚本
cd ..
#返回上一级目录

 
注: 在脚本里,如果需要实行一键备份的话, 需要在脚本里创建一个一键进行rar压缩的脚本,并把本脚本里的rar压缩那一行用#号注释掉. 这样就不需要再手动输入密码了,直接就由另一个脚本接管了.
原始脚本:

# !/bin/bash
##############################################################################################################################################
# Author: RucLinux 海南胡说 海南仙岛
# Website: www.myzhenai.com www.myzhenai.com.cn www.haikou-china.com jiayu.mybabya.com www.0898-shop.com
##############################################################################################################################################
ac=`date +%Y`
bc=`date +%m`
cc=`date +%d`
mkdir /var/www/back
cd /var/www/
cp -ar /var/www/wordpress back/
cp -ar /var/www/cms back/
cp -ar /var/www/Discuz back/
mysqlcheck -Ao -uroot -pNGNlYm-NDU5Mm-NlMmFi-NmM1NW-ZhODc0-MjQ2Z
mysqldump -u root -pNGNlYm-NDU5Mm-NlMmFi-NmM1NW-ZhODc0-MjQ2Z cms |gzip > /var/www/back/cms"_"$ac"_"$bc"_"$cc.sql.gz
mysqldump -u root -pNGNlYm-NDU5Mm-NlMmFi-NmM1NW-ZhODc0-MjQ2Z Discuz |gzip > /var/www/back/Discuz"_"$ac"_"$bc"_"$cc.sql.gz
mysqldump -u root -pNGNlYm-NDU5Mm-NlMmFi-NmM1NW-ZhODc0-MjQ2Z wordpress |gzip > /var/www/back/WordPress"-"$ac"-"$bc"-"$cc.sql.gz
cd back
tar -czvf cms"_"$ac"_"$bc"_"$cc.tar.gz cms/*
tar -czvf wordpress"_"$ac"_"$bc"_"$cc.tar.gz wordpress/*
tar -czvf Discuz"_"$ac"_"$bc"_"$cc.tar.gz Discuz/*
cd ..
rm -rf back/cms
rm -rf back/Discuz
rm -rf back/wordpress
#rar a toutiao"_"$ac"_"$bc"_"$cc.zip back/* -pYWNiND-MGNiYT-ZiYWI2-NjE1NG-JmNDhk-YzBkMj -z
password=`YWNiND-MGNiYT-ZiYWI2-NjE1NG-JmNDhk-YzBkMj`
echo '#!/usr/bin/expect' >> ServerBack.sh
echo 'spawn rar a server"_"$ac"_"$bc"_"$cc.zip back/* -p$password -z' >> ServerBack.sh
echo 'expect "Reading comment from stdin"' >> ServerBack.sh
echo 'send "Password:$password"' >> ServerBack.sh
echo 'send "\04\04"' >> ServerBack.sh
#\04 =CTRL+D
echo 'expect eof' >> ServerBack.sh
chmod 777 ServerBack.sh
./ServerBack.sh
cp -ar toutiao"_"$ac"_"$bc"_"$cc.zip /var/www/cms/
rm -rf back
rm -rf toutiao"_"$ac"_"$bc"_"$cc.zip
rm -rf ServerBack.sh
cd ..

 


sicnature ---------------------------------------------------------------------
Your current IP address is: 44.222.149.13
Your IP address location: 美国弗吉尼亚阿什本
Your IP address country and region: 美国 美国
Your current browser is:
Your current system is:
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
Welcome to reprint. Please indicate the source http://www.myzhenai.com.cn/post/2636.html

1 评论

  • 海南胡说 2017年05月12日在8:36 上午

    Linux下的rar文件解压缩命令是
    unrar x -p toutiao.zip

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注