linux服务器文件自动备份脚本

linux服务器文件自动备份脚本

#!/bin/bash

#网站名称

WEB_NAME="website"

#数据库信息 database info

DB_NAME="webdb" 

DB_USER="user" 

DB_PASS="password"

#备份文件存放目录 

BACKUP_DIR=/home/backup

#格式化一下日期,备份文件时用日期来做文件名的 

DATE=`date +%F`

# Others vars

BIN_DIR="/usr/bin/"

BCK_DIR="/home/backup"  

# TODO 备份数据库


if [ -f ${BCK_DIR}/${DATE}_DB_${WEB_NAME}_${DB_NAME}.gz ]; then

    echo ${DATE}\'s database backup file is existing

else 

    ${BIN_DIR}/mysqldump  -u${DB_USER} -p${DB_PASS} --single-transaction  --quick ${DB_NAME} | gzip > ${BCK_DIR}/${DATE}_DB_${WEB_NAME}_${DB_NAME}.gz

fi

#每周一完整备份网站目录,WEEKDAY数字1是周一

WEEKDAY=`date +%w`

if [ $WEEKDAY -eq 1 ];

then

if [ -f ${BCK_DIR}/${DATE}_Webapp_${WEB_NAME}.tar.gz ]; then

    echo ${DATE}\'s webapp backup file is existing

else 

    tar zcvf ${BCK_DIR}/${DATE}_Webapp_${WEB_NAME}.tar.gz /var/www/html/

fi

fi

#每日备份网站

YEAR=`date +%Y`

MONTH=`date +%m`

if [ -f ${BCK_DIR}/${DATE}_Webapp_${WEB_NAME}_uploadfile_${YEAR}${MONTH}.tar.gz]; then

    echo ${DATE}\'s webapp UserFiles backup file is existing

else 

    tar zcvf ${BCK_DIR}/${DATE}_Webapp_${WEB_NAME}_uploadfile_${YEAR}${MONTH}.tar.gz /var/www/html/uploadfile

fi

#复制备份文件到nfs服务器

cd ${BCK_DIR}

cp ${DATE}* /nfs/${WEB_NAME}

#删除超过10天的旧备份文件

OLDFILE="10"

find -name '*${WEB_NAME}*' -mtime +${OLDFILE} -exec rm -f {} \;  


给文件运行权限

chmod +x  /root/bin/backup.sh

然后使用将此脚本加到 /etc/crontab 定时任务中:

crontab -euroot

添加如下一行:

23 1 * * * /root/bin/backup.sh


#minute: 表示分钟,可以是从0到59之间的任何整数。

#hour:表示小时,可以是从0到23之间的任何整数。

#day:表示日期,可以是从1到31之间的任何整数。

#month:表示月份,可以是从1到12之间的任何整数。

#week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值