凌晨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

脚本内容

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
    #!/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