Linux系统对网站数据定期自动备份与删除,linux备份
Linux系统对网站数据定期自动备份与删除,linux备份
需求是这样的,首先网站文件和数据库需要每天自动备份,然后备份目录超过一定时间的删除,比如保留最近14天地备份
刚好vps是redhat,里面默认居然没有装crond的服务,输入以下命令安装
yum install cronie
创建备份脚本
vi /root/bakweb.sh
编辑并输入以下内容
#!/bin/bash
find /home/bak/ -name '*' -type f -mtime +14 -exec rm {} \;
tar zcvf /home/bak/www.penglei.name_$(date +%F).tar.gz /var/www/html
mysqldump -u root --password=PASSWORD DBNAME >
/home/bak/sql.penglei.name_$(date +%F).sql
exit 0 输入:wq保存退出。 该脚本的意思是首先选择/home/bak作为网站备份目录。
第一步,先删除/home/bak下超过14天的文件;
第二步,按www.jb51.name_+日期为文件名备份网站目录/var/www/html;
第三步,按sql.penglei.name_+日期为文件名导出数据库,PASSWORD和DBNAME替换为你自己的root密码和数据库名。
最后创建crond脚本,每天早上5点自动运行该脚本即可 创建crond文件
vi /etc/cron.d/bakweb 编辑并输入以下内容
0 5 * * * root /root/bakweb.sh
完成,这样Linux系统就可以对网站数据定期自动备份与删除了,谢谢阅读,希望能帮到大家,请继续关注帮客之家,我们会努力分享更多优秀的文章。
你是要写自动备份的脚本吧,刚好我上月写了一个,已经用了近一个月出现问题,给你一份吧
邮箱?
#!/bin/sh
#BAKDIR可以换一个你喜欢的
BAK_DIR=/backup
#*为未知,自己查一下怎么取星期啦, 要0-6那个
DATE=$(date +%*)
#自己查一下怎么周数啦
WEEK=$(date +%*)
#备份文件名
FULL_BAK=full_back.$WEEK.tar.bz2
INCRE_BAK=increment_back.$WEEK.$DATE.tar.bz2
#其实没什么不同的,只是要改文件名而已
if [ $DATE -eq 0]; then
tar -g $BAK_DIR/sn.$WEEK cjf $BAK_DIR/$FULL_BAK
else
tar -g $BAK_DIR/sn.$WEEK cjf $BAK_DIR/$INCRE_BAK
fi
exit $?
# 把任务加到crontab里就行了,每天执行一次
================
#!/bin/sh
BAK_DIR=/backup
#还原目录
RECOVER_DIR=/
FULL_BAK=full_back.$WEEK.tar.bz2
INCRE_BAK=increment_back.$WEEK.$DATE.tar.bz2
echo -n "recover from week: "
read WEEK
if [ -e $BAKDIR/$FULL_BAK ]; then
tar xjf $BAK_DIR/$FULL_BAK -C $RECOVER_DIR
for N in $(seq 6); do
if [ -e $BAK_DIR/$INCRE_BAK ]; then
tar xjf $BAK_DIR/$INCRE_BAK -C $RECOVER_DIR
fi
done
else
echo "Backup file not exist!! exit now~~"
fi
exit $?
# 这个是手动执行的,要自己输入想还原到的周数年
补充:
可能要自己调试一下
评论暂时关闭