LAMP架构网站的简单备份




    我觉得LAMP做的网站只需要备份mysql数据库和wordpress的目录就可以了,所以后面只备份了这两个东西。方法很简单,就是写一个脚本通过scp把备份的文件传到另一台主机,然后利用cron每天定时执行脚本。

    首先得先有一台放备份文件的主机,我用的是帮帮给我的一个虚拟机(如果帮帮能看到的话,在此致谢),以前在网上看到过有人利用百度云来备份网站,等有空研究研究,百度云3GB的免费空间可真是不小。

    1.备份mysql数据库,用mysqldump备份成sql语句:
    
      
 mysqldump -uUSERNAME -pPASSWORD DBNAME > MYSQL_FILE_NAME.sql




    2.备份wordpress和log日志:

        
tar -zcvf WORDPRESS_FILE_NAME.tar.gz  /var/www  /var/log    

   


    3.通过scp将文件传到备份主机,确保备份主机已开启ssh服务

    
   scp -P10086 MYSQL_FILE_NAME.sql WORDPRESS_FILE_NAME.tar.gz username@IP:/home/username/backup




    4.发送邮件通知,安装sendmail,通过sendmail命令发送简单的通知邮件

     
  (echo "Subject: Report from the ALIYUN";echo "The backup is finished !";echo $DATE) | sendmail -f ALI@root.com  -t abc@123.com




    5.删除应用服务器上的备份文件,节省空间:

      
 rm -rf MYSQL_FILE_NAME.sql WORDPRESS_FILE_NAME.tar.gz




    6.把以上过程整理成一个脚本:

    
   #!/bin/bash
        #filename:backup.sh
        #function:LAMP_BACK
        #author:paulyan
        #date:2014.04.27

        DATE=`date +%Y%m%d_%H%M%S`
        MYSQL_FILE_NAME=/root/mysql_back_$DATE.sql
        MYSQL_USERNAME=username
        MYSQL_PASSWORD=password
        WORDPRESS_FILE_NAME=/root/wordpress_back_$DATE.tar.gz

        #backup mysql and wordpress
        mysqldump -u$MYSQL_USERNAME -p$MYSQL_PASSWORD wordpress > $MYSQL_FILE_NAME
        tar -zcvf $WORDPRESS_FILE_NAME /var/www /var/log

        #scp to bangbang'host
        scp -P10086 $MYSQL_FILE_NAME $WORDPRESS_FILE_NAME username@IP:/home/paul/ALIYUN_BACKUP

        #mail2me
        (echo "Subject: Report from the ALIYUN";echo "The backup is finished !";echo $DATE) | sendmail -f ALI@root.com  -t abc@123.com

        #delete files
        rm -rf mysql_back* wordpress_back*




    7.在cron中加入执行backup.sh计划,每天凌晨一点执行备份,打开/etc/crontab添加:

       
 0 1 * * * root /root/backup.sh



    



    遇到的几个问题(坑):
        
        如果ssh端口不是默认的22,需要在scp命令后跟参数 -P端口,此参数要跟着scp之后,不可在备份主机IP之后

        注意QQ邮箱是接受不到sendmail发送的邮件的,网易邮箱可以

        系统中可能默认没有安装cron服务,需要手动安装,debian和centos的软件包不一样,一个是cron一个是crontabs

        shell脚本中定义变量时,单引号''和反引号``是不一样的,如果要定义可执行程序的变量一定要用反引号    

            
















   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值