现在的位置: 首页 > Linux > shell脚本 > 正文
Linux简单的备份脚本
2013年03月17日 shell脚本 ⁄ 共 998字 Linux简单的备份脚本已关闭评论 ⁄ 被围观 7,203 views+

一、编写脚本如下:
建立备份目录

# mkdir /backup

编辑备份脚本

# vi /backup/bak.sh

脚本内容如下:

#!/bin/bash
##用途:备份mysql数据,删除k天前的数据##
##作者:Barlow##
##最后修订:2013-03-16##
#
#设定备份保留天数K
K=7
#获取当前日期
TODAY=`date '+%Y%m%d'`
#获取K天前日期
KDAY=`date -d "$TODAY - $K day" '+%Y%m%d'`
#建立备份子目录
mkdir -p /backup/$1
#进行备份,并将结果写入日志
tar zcvf /backup/$1/$TODAY.tar.gz $1 >/dev/null 2>/backup/$1/$TODAY.bak.log
#判断是否出错,并将执行情况写入日志
if [ $? -eq 0 ]
then
echo "$1 $TODAY backup is successful!" >> /backup/$1/$TODAY.bak.log
else
echo "$1 $TODAY backup is error!" >> /backup/$1/$TODAY.bak.log
fi

#删除过期备份
if [ -f "/backup/$1/$KDAY.tar.gz" ]
rm -rf /backup/$1/$KDAY.tar.gz
else
echo "The $KDAY.tar.gz is not exist!" >> /backup/$1/$TODAY.bak.log
fi
exit

注意:$1 表示在该脚本执行时后面跟的第一个参数,也就是我们需要备份的目录
$? 表示上一个命令执行情况,如果返回结果为0,则执行正常,否则不正常

二、配置计划任务:
建立备份任务计划,如备份mysql目录,每天凌晨3点整执行,具体如下:

#vim /etc/crontab
0 3 * * * root  /backup/bak.sh /var/lib/mysql

注意:
1、shell脚本和计划任务按上述的方法写,则可以很多备份使用同一个脚本,其中/var/lib/mysql就是备份脚本中的$1
2、一般系统级的计划任务才放入/etc/crontab中,用户级的计划任务使用crontab -e编辑。

三、重启服务使计划任务生效
编辑后记得重启crond服务,并将其设置为自启动:

#service crond restart
停止 crond: [确定]
正在启动 crond: [确定]
#chkconfig crond on

 

抱歉!评论已关闭.

×