一、编写脚本
编写一个脚本文件,使脚本可以执行备份命令。
例如,将文件目录 /home/XXX/apache/xxx
备份到/home/bf
目录下,并压缩。
1、创建脚本
命令格式: touch 路径/文件名.sh
例如:
输入命令:touch /home/bf/backup.sh
2、编写脚本
首先进入脚本:vi命令
vi /home/bf/backup.sh
在脚本内写入:
#!/bin/sh
mkdir /home/beifenwj
#创建一个临时文件(要保存备份的路径)
cp -r /home/XXX/apache/xxx /home/beifenwj
#数据存在bf目录下,备份到beifenwj目录下,所以先将数据拷过来
tar -zcPvf /home/bf/backup$(date +%Y%m%d).tar.gz /home/beifenwj
#将数据所在文件夹beifenwj打包
rm -rf /home/beifenwj/
#删除临时文件内容
find ./ -mtime +30 -name "*.tar.gz" -exec rm -rf {} \;
#删除改文件夹下超过30天的文件-----此条信息博主未验证,请谨慎使用
3、执行脚本文件
直接手动执行脚本文件。
命令格式:sh 路径/文件名.sh
例如:sh /home/bf/backup.sh
二、 设置定时执行本脚本(通过crond执行定时任务)。
1、先检查系统是否安装crond
[root@localhost]#rpm -qa|grep cron
[root@localhost]#
经检查,系统并未安装cron
2、crond联网下载
yum install crontabs
3、查看crond服务是否运行
ps -ef|grep crond
或者 service crond status
4、crond服务操作命令
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
5、设置crond开机自动启动
查看crond是否开机自动启动:
$ chkconfig --list crond
设置crond开机自动启动:
$ chkconfig --level 35 crond on
6、设置定时执行(定时执行上面定义的脚本文件)
输入命令:crontab –e
进入后继续输入命令:0 0 /7 * * sh /home/bf/backup.sh
设置为每7天执行一次脚本文件
然后,保存退出:wq
重启crond服务:/sbin/service crond restart //重启服务
7、crond 参数说明
基本格式 :
* * * * * command
分 时 日 月 周 命令
解 释:
第1列表示分钟1~59 每分钟用或者 /1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
三、crontab不执行问题分析
- 当我们手动执行脚本成功而crontab配置定时任务不能执行脚本的时候,很有可能就是执行环境的问题,例如相关路径的设置问题。解决方案:在脚本代码最前面执行
source /home/user/.bash_profile
- 脚本是否有可执行权限。必须保证执行脚本的用户有执行改文件的权限。
- 系统时间不正确。解决方案:date -s ********
- crond没有启动