CentOS7 CronTab 计划任务

时间:2022-03-11 07:59:04

一个自动备份的脚本

线上的,将相关网站和数据库备份

backup.sh

#!/bin/sh
#backup localhost sql and website files
dir_name=$(date +%Y%m%d%H%M)
mkdir /backup/$dir_name
mysqldump -uroot -yourpassword xxoo_db>/backup/$dir_name/xxoo_db.sql
tar zcvf /backup/$dir_name/ooxx.tar.gz /www/ooxx
#delete x days before directory
list_alldir(){
    for file2 in `ls -a $1`
    do
        if [ x"$file2" != x"." -a x"$file2" != x".." ];then
            if [ -d "$1/$file2" ];then
                if [ $file2 -lt $dir ];then
                    rm -rf $1/$file2
                fi
            fi
        fi
    done
}
dir=$(date -d "-1 days" +%Y%m%d%H%M)
list_alldir /backup

<pre name="code" class="cpp">#vi /etc/crontab

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

 以上会自动在每天0点0分开始执行xxoo网站的备份 (线上) 

本地备份服务器

download.sh

#backup online's website to localhost
expect -c "
set timeout 21600;
spawn /usr/bin/scp -r 1.2.3.4:/backup/* /backup/
expect {
\"*yes/no*\" {send \"yes\r\"; exp_continue}
\"*password*\" {send \"yourpassword\r\";}
}
expect eof;"
#remove x days before directory
list_alldir(){
    for file2 in `ls -a $1`
    do
        if [ x"$file2" != x"." -a x"$file2" != x".." ];then
            if [ -d "$1/$file2" ];then
                if [ $file2 -lt $dir ];then
                    rm -rf $1/$file2
                fi
            fi
        fi
    done
}
dir=$(date -d "-7 days" +%Y%m%d%H%M)
list_alldir /backup

#vi /etc/crontab

0 1 * * * root /sh/download.sh

以上会自动在每天1点整开始将网上的备份下载到本地备份服务器