原创内容,转载请注明出处: 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 ---------------------------------------------------------------------
I P 地 址: 18.118.152.100
区 域 位 置: 美国马萨诸塞
系 统 信 息:
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普 | 海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
1 评论
Linux下的rar文件解压缩命令是
unrar x -p toutiao.zip