现在很多企业个人都会选择使用动态拨号服务器,但是提醒无论什么情况下,都一定要做好数据备份,否则会很麻烦,下面就教大家如何备份数据脚本
代码来自网络,备份的比较齐全,网站文件夹,php/mysql/nginx/ssh的配置文件,还有crontab任务列表也备份了,执行脚本后最后会生成一个tar.gz文件,按当天日期命名。
生成的文件应该不会小,所以发送到邮箱不合适,可以上传到FTP,相关代码网上很多,我自己没安装ftp,所以是两台动态拨号服务器备份后,互相下载。
保存下面代码,或者从这下载脚本。
给脚本添加权限
chmod +x backup.sh
用crontab实现每天0点自动备份,crontab -e
00 00 * * * /home/backup.sh#!/bin/bash
#需要修改的地方从这里开始
WEB_DATA=/home/wwwroot #要备份的网站数据
nginx_DATA=/usr/local/nginx/conf #要备份的NGINX配置文件
PHP_Config=/usr/local/php/etc #要备份的PHP配置文件
Ftp=/usr/local/pureftpd #要备份的PURE-FTPD
Folder=/home/bak #备份文件的存放文件夹
Config=/etc/init.d/ #要备份的服务文件
ppp=/etc/ppp #要备份的PPP(pptp)账号数据
date=$(date +"%Y%m%d") #今日时间
MYSQL_UserName=root #mysql账号
MYSQL_PassWord=password #mysql密码
DB_Name1=test1 #数据库1
DB_Name2=test2 #数据库2
DB_Name3=test3 #数据库3
DB_Name4=test4 #数据库4 默认是四个数据库,按自己情况增加减少
#需要修改的地方从这里结束
#手动备份删除今日数据
rm -fr / F o l d e r / Folder/ Folder/date.tar.gz
#删除3天前的数据
rm -fr / F o l d e r / Folder/ Folder/(date -d -3day +"%Y%m%d").tar.gz
#创建今天的备份目录
mkdir -p / F o l d e r / Folder/ Folder/date
#压缩网站数据
cd $WEB_DATA
tar zcf / F o l d e r / Folder/ Folder/date/web.tar.gz ./*
#备份并压缩Mysql数据库
/usr/local/mysql/bin/mysqldump -u M Y S Q L U s e r N a m e − p MYSQL_UserName -p MYSQLUserName−pMYSQL_PassWord D B N a m e 1 > / DB_Name1 > / DBName1>/Folder/ d a t e / date/ date/DB_Name1-$(date +"%Y%m%d").sql
/usr/local/mysql/bin/mysqldump -u M Y S Q L U s e r N a m e − p MYSQL_UserName -p MYSQLUserName−pMYSQL_PassWord D B N a m e 2 > / DB_Name2 > / DBName2>/Folder/ d a t e / date/ date/DB_Name2-$(date +"%Y%m%d").sql
/usr/local/mysql/bin/mysqldump -u M Y S Q L U s e r N a m e − p MYSQL_UserName -p MYSQLUserName−pMYSQL_PassWord D B N a m e 3 > / DB_Name3 > / DBName3>/Folder/ d a t e / date/ date/DB_Name3-$(date +"%Y%m%d").sql
/usr/local/mysql/bin/mysqldump -u M Y S Q L U s e r N a m e − p MYSQL_UserName -p MYSQLUserName−pMYSQL_PassWord D B N a m e 4 > / DB_Name4 > / DBName4>/Folder/ d a t e / date/ date/DB_Name4-$(date +"%Y%m%d").sql
cd $Folder
tar zcf / F o l d e r / Folder/ Folder/date/database- ( d a t e + " (date +"%Y%m%d").tar.gz ./ (date+"date/*.sql
#备份NGINX配置文件
cd $nginx_DATA
tar zcf / F o l d e r / Folder/ Folder/date/nginx.tar.gz ./*
#备份PHP配置文件
cd $PHP_Config
tar zcf / F o l d e r / Folder/ Folder/date/php.tar.gz ./*
#压缩FTP Server文件
cd $Ftp
tar zcf / F o l d e r / Folder/ Folder/date/ftp.tar.gz ./*
#压缩服务文件
cd $Config
tar zcf / F o l d e r / Folder/ Folder/date/d.tar.gz ./nginx ./mysql ./php-fpm ./ftpd
#打包PPP配置以及PPTP拨号帐号
cd $ppp
tar zcf / F o l d e r / Folder/ Folder/date/ppp.tar.gz ./*
#备份SSHD配置文件
cp /etc/ssh/sshd_config / F o l d e r / Folder/ Folder/date
#备份crontab内容
crontab -l > / F o l d e r / Folder/ Folder/date/crontab_$date.txt
#压缩当天数据
cd /$Folder/
tar zcf / F o l d e r / Folder/ Folder/date.tar.gz ./$date/*
#删除当天备份文件夹
rm -fr / F o l d e r / Folder/ Folder/date