centos6.5环境通过shell脚本备份php的web及mysql数据库并做远程备份容灾

系统:centos6.5





1.创建脚本目录

mkdir -p /usr/local/sh/

创建备份web文件存放目录

mkdir -p /data/backup/www/





创建备份db文件存放目录

mkdir -p /data/backup/db/





授权backup用户对所有数据库的操作权限(注意用来备份mysql数据库)

GRANT ALL PRIVILEGES ON *.* TO 'backup'@'localhost' IDENTIFIED BY 'pass';





2.编辑备份的脚本文件

vim /data/scripts/backup-web-db.sh





#!/bin/bash

#需备份的站点目录

Website_Dir1=www.chinasoft.com

Website_Dir2=www.yayachinasoft.com





#数据库备份用户名密码

MYSQL_UserName=backup

MYSQL_PassWord=pass

#需要备份的数据名

Backup_Database_Name1=yunva

Backup_Database_Name2=yayasdk





#FTP服务器信息

FTP_HostName=ftp_ip

FTP_UserName=web-backup

FTP_PassWord=pass

FTP_BackupDir=website-db-backup/yayachinasoft-yayachinasoft/





#Values Setting END!





#备份文件名

TodayWWWBackup=*-$(date +"%Y%m%d").tar.gz

TodayDBBackup=*-$(date +"%Y%m%d").sql

OldWWWBackup=*-$(date -d -3day +"%Y%m%d").tar.gz

OldDBBackup=*-$(date -d -3day +"%Y%m%d").sql





#备份站点源码

tar -zcf /data/backup/www/$Website_Dir1--$(date +"%Y%m%d").tar.gz -C /var/www/web $Website_Dir1

tar -zcf /data/backup/www/$Website_Dir2--$(date +"%Y%m%d").tar.gz -C /var/www/web $Website_Dir2





#备份数据库

mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name1 > /data/backup/db/$Backup_Database_Name1-$(date +"%Y%m%d").sql

mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name2 > /data/backup/db/$Backup_Database_Name2-$(date +"%Y%m%d").sql





#备份配置文件

#cp /etc/php.ini /tmp/conf/php

#cp -r /etc/ningx/*  /tmp/conf/nginx





#删除旧的备份文件

rm -f /data/backup/www/$OldWWWBackup

rm -f /data/backup/db/$OldDBBackup





#上传备份文件夹到FTP服务器

cd /data/backup/





lftp $FTP_HostName -u $FTP_UserName,$FTP_PassWord << EOF

cd /$FTP_BackupDir/www

mrm $OldWWWBackup

mput www/$TodayWWWBackup

cd /$FTP_BackupDir/db/

mrm $OldDBBackup

mput db/$TodayDBBackup

bye

EOF





3.添加脚本执行权限

chmod +x /data/scripts/backup-web-db.sh





4.添加计划任务:

每天凌晨2点执行备份任务

crontab -e





#backup-web-db

00 02 * * * /bin/bash /data/scripts/backup-web-db.sh >/dev/null 2>&1





重启生效

systemctl restart crond

公司内部FTP服务;

调试:

手动测试ftp是否能够连接

lftp ftp_ip -u web-backup,pass





手动调试程序是否正常执行:

sh -x /data/scripts/backup-web-db.sh





FTP_HostName=ftp_ip

FTP_UserName=web-backup

FTP_PassWord=pass

FTP_BackupDir=website-db-backup/yayachinasoft-yayachinasoft/

最新文章

  1. 笔记 .Net反射机制
  2. JS判断input按了回车键
  3. 提高生产性工具 - Model代码生成器(二)
  4. Android的进程等级
  5. HTML:模拟链接被按下,在新标签页打开页面,不使用window.open(可能被拦截)
  6. 机器学习实战 - 读书笔记(11) - 使用Apriori算法进行关联分析
  7. UICollection 重排 和汉字拼音
  8. java基础知识回顾之---java String final类之intern方法
  9. IE6双倍margin间距解决方案
  10. 腾讯出品的抓包工具Rythem
  11. HLS 协议
  12. POJ 3259 Wormholes(SPFA+邻接表)
  13. Java运算符和流程控制
  14. 【转】elasticsearch的查询器query与过滤器filter的区别
  15. Linux基础 -Ubuntu
  16. 基于MySQL的Activiti6引擎创建
  17. 转wave 文件解析
  18. eclipse 打包
  19. 【Spark】Sparkstreaming-性能调优
  20. [原创]K8飞刀20150720 新增Shellcode Loader支持多种格式

热门文章

  1. dispatch_block_t
  2. 11th 回忆整个学期——告学弟学妹
  3. 32位机和64位机下面各类型sizeof的大小
  4. 启动studio报错Gradle error
  5. Racket Cheat Sheet
  6. 【刷题】LOJ 6015 「网络流 24 题」星际转移
  7. 洛谷 P4568 [JLOI2011]飞行路线 解题报告
  8. 前端学习 -- Css -- 行间距
  9. django模板中的自定义过滤器
  10. Saltstack-API(十二)