linux服务器文件自动备份脚本详情,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代表星期日。

相关内容