记录生活的点点滴滴~~~

服务器每日自动备份脚本

凌晨3点自动执行/root/bakcup.sh 脚本,备份vps上的数据并上传到FTP上。

安装步骤

  1. 将脚本放到/root/ 下面,按上面的注释修改脚本中的参数,并保存,如果不熟悉vi或者nano编辑器,可以用winscp
  2. 执行:chmod +x /root/backup.sh 为脚本添加执行权限
  3. 执行:crontab -e 添加定时执行
  4. crontab中加入:0 3 * * *| /root/backup.sh

脚本内容

    #!/bin/bash
    echo "backup starting ..."
    #需要修改的地方从这里开始

    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/backup                     #备份文件的存放文件夹

    Config=/etc/init.d/                             #要备份的服务文件

    #ppp=/etc/ppp                                   #要备份的PPP(pptp)账号数据

    date=$(date +"%Y%m%d")                          #今日时间

    MYSQL_UserName=root                             #mysql账号

    MYSQL_PassWord=此处被和谐                        #mysql密码

    DB_Name1=jincheng_web                           #数据库1

    DB_Name2=ftpusers                               #数据库2

    #DB_Name3=information_schema                     #数据库3

    DB_Name4=mysql                                  #数据库4 默认是四个数据库,按自己情况增加减少

    #需要修改的地方从这里结束

    echo "cleaning ..."

    #手动备份删除今日数据

    rm -fr /$Folder/$date.tar.gz

    #删除3天前的数据

    rm -fr /$Folder/$(date -d -3day +"%Y%m%d").tar.gz

    #创建今天的备份目录

    mkdir -p /$Folder/$date

    echo "backup mysql ..."


    #备份并压缩Mysql数据库
    /usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $DB_Name1 > /$Folder/$date/$DB_Name1-$(date +"%Y%m%d").sql

    /usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $DB_Name2 > /$Folder/$date/$DB_Name2-$(date +"%Y%m%d").sql

    #/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $DB_Name3 > /$Folder/$date/$DB_Name3-$(date +"%Y%m%d").sql

    /usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $DB_Name4 > /$Folder/$date/$DB_Name4-$(date +"%Y%m%d").sql


    cd $Folder

    tar zcf /$Folder/$date/database-$(date +"%Y%m%d").tar.gz ./$date/*.sql


    echo "backup webroot ..."

    cd ~

    sh lnmp stop
    #压缩网站数据

    cd $WEB_DATA

    tar zcf /$Folder/$date/web.tar.gz ./*
    echo "backup config ..."

    #备份NGINX配置文件

    cd $nginx_DATA

    tar zcf /$Folder/$date/nginx.tar.gz ./*
    #备份PHP配置文件

    cd $PHP_Config

    tar zcf /$Folder/$date/php.tar.gz ./*
    #压缩FTP Server文件

    cd $Ftp

    tar zcf /$Folder/$date/ftp.tar.gz ./*
    #压缩服务文件

    #cd $Config

    #tar zcf /$Folder/$date/d.tar.gz ./nginx ./mysql ./php-fpm ./ftpd
    #打包PPP配置以及PPTP拨号帐号

    #cd $ppp

    #tar zcf /$Folder/$date/ppp.tar.gz ./*
    #备份SSHD配置文件

    cp /etc/ssh/sshd_config /$Folder/$date

    cp /root/* /$Folder/$date
    #备份crontab内容

    crontab -l > /$Folder/$date/crontab_$date.txt
    #压缩当天数据

    cd /$Folder/

    tar zcf /$Folder/$date.tar.gz ./$date/*
    #删除当天备份文件夹

    rm -fr /$Folder/$date


    cd ~sh lnmp start
服务器每日自动备份脚本

https://geekyotter.com/posts/server-daily-automatic-backup-script.html

作者

超级水獭

发布时间

2012-03-02

许可协议

无,保留所有权利

本页的评论功能已关闭