使用shell脚本进行每月定时备份数据

实现功能:每月第一天备份并压缩/root/shelltest目录到/root/fileback中

第一步:编写脚本

先写一个备份数据的脚本,首先定义备份源路径和目标路径,设置备份文件名为当前日期

#!/bin/bash
SRC_DIR=/root/shelltest
DST_DIR=/root/fileback
BACK=$(date +%Y%m%d)_etc.tar.gz
#判断目标地址是否存在,不存在就创建,使用“||”代替if语句
[ -d $DST_DIR ] || mkdir $DST_DIR
#备份数据
cd $DST_DIR && tar czvf $BACK $SRC_DIR &> $DST_DIR/cron.log && echo "$SRC_DIR backup finishe
d" || echo "ERROR,please check what happend"

使用shell脚本进行每月定时备份数据_第1张图片

执行成功后进入第二步。

第二步:设置定时器

Linux中定时器的命令是crontab

vi /etc/crontab 可以查看crontab的注解
crontab -e 进入某用户编辑模式
crontab -l 列出某用户cron服务详情
crontab -r 删除某个用户的cron服务
crontan -u 设定某个用户的cron服务

使用该命令进入crontab编辑界面

使用shell脚本进行每月定时备份数据_第2张图片

注释里很明确的解释了每个地方需要填写的内容,前五个星号分别代表定时时间,后边是命令,如

每分钟执行  * * * * *
每天6点执行 0 6 * * *
每周六6点30分执行 30 6 * * 6
在上午8点到11点的第3和第15分钟执行 3,15 8-11 * * * 

我们先尝试一下每分钟输入一段内容到指定路径

crontab -e进入编辑模式
#输入下面的命令,路径请选择自己的
*  *  *  *  * echo `date` >> /root/fileback/text.txt

过几分钟后查看text.txt的内容

使用shell脚本进行每月定时备份数据_第3张图片

因此每个月定时备份的命令就很简单了,/bin/sh相当于bash的功能,后面的地址是自己shell文件的路径

0 0 1 * * /bin/sh /root/shelltest2/fileback.sh

 

你可能感兴趣的:(Linux)