Linux centos下设置定时备份任务

3次阅读

共计 1802 个字符,预计需要花费 5 分钟才能阅读完成。

实现准备
# 需要备份文件路径:/opt/apollo/logs/access_log
[root@localhost opt]# cd apollo/
[root@localhost apollo]# tree
.
├── logs
│   └── access_log
└── test.sh
# 文件备份存放路径:/tmp/logs
# 备份文件加上时间戳 date + %Y%m%d%H%M%S
1. 编写 shell 脚本
[root@localhost tmp]# vi /opt/apollo/test.sh
# 编译器
# !/bin/bash

# 日志备份到该目录下, 定义变量使用单引号
mypath=’/tmp/logs’
# 回应 /tmp/logs
echo ${mypath}

# 要备份的日志
mylog=’/opt/apollo/logs/access_log’
# 回应 /opt/apollo/logs/access_log
echo ${mylog}

# 时间戳, 执行命令使用 “,esc 下面的
time=`date +%Y%m%d%H%M%S`
# 回应时间戳
echo ${time}

# 备份日志 access_log 到 /tmp/logs 路径下
cp ${mylog} ${mypath}/${time}_access.log
# 回应
echo ${mypath} ${mypath}/${time}_access.log
2. 执行 test.sh
[root@localhost apollo]# ./test.sh
-bash: ./test.sh: Permission denied
3. 执行 ls -la
[root@localhost apollo]# ls -la
total 8
drwxr-xr-x 2 root root 21 Jan 20 08:00 .
drwxr-xr-x. 14 root root 4096 Jan 20 07:07 ..
-rw-r–r– 1 root root 489 Jan 20 08:00 test.sh
4. 给文件 test.sh 赋与执行权限
[root@localhost apollo]# chmod +x ./test.sh
[root@localhost apollo]# ls -la
total 8
drwxr-xr-x 2 root root 21 Jan 20 08:00 .
drwxr-xr-x. 14 root root 4096 Jan 20 07:07 ..
-rwxr-xr-x 1 root root 489 Jan 20 08:00 test.sh
5. 再次执行, 脚本没有报错
[root@localhost apollo]# ./test.sh
/tmp/logs
/opt/apollo/logs/access_log
20190120080932
/tmp/logs /tmp/logs/20190120080932_access.log
6. 编辑定时任务
[root@localhost logs]# crontab -e
no crontab for root – using an empty one
crontab: installing new crontab
7. 查看定时任务
# 每分钟执行一次 test.sh
* * * * * sh /opt/apollo/test.sh
8. 重启 crond
[root@localhost logs]# service crond reload
Redirecting to /bin/systemctl reload crond.service
You have new mail in /var/spool/mail/root
9. 编写文件 access_log
# 需要备份文件路径:
/opt/apollo/logs/access_log
# 编辑文件
[root@localhost logs]# vi /opt/apollo/logs/access_log
# 追加内容如下:
mmmmmmmmmmmmmmmmmmmmm
10. 过 1 分钟, 再去查备份存放目录
[root@localhost logs]# cat 20190120083101_access.log
djddjsjsjsjjsjsjsj
mmmmmmmmmmmmmmmmmmmmm
11. 到此为止, 定时备份任务完成.
恭喜你, 学会备份了!
12. 删除定时任务
[root@localhost logs]# crontab -r
You have new mail in /var/spool/mail/root
13. 查看定时任务
[root@localhost logs]# crontab -l
no crontab for root

正文完
 0