工作中需要周期性的从远程主机拷贝数据到本地,本文介绍利用cron完成周期性任务的方法。
在LINUX下,Cron是系统自带的一个强大的工具,可以自动周期性的执行预定的任务,特别适合用来进行数据备份、数据清理、定期任务等工作。如果系统没有自带,可以使用apt install cron安装。
1.查看任务列表
crontab -l
默认情况下,是没有后台任务的。
2.设定任务
可以按照cron的格式进行任务设定,假设我们需要每1分钟执行一个脚本,脚本名称为doscp.sh。可以按如下方式编写任务:
crontab -e
执行该命令,有时候会让你选择编辑器,然后进入编辑页面,在文件最后输入如下数据
*/1 * * * * /home/kylin/mimic/release/appmonitor/doscp.sh
保存并退出即可完成任务设定。可以使用上面的crontab -l命令来查看。
每一行就是一个任务,可以设置多个任务。前面部分“*/1 * * * *” 是时间周期,后面部分是执行的脚本,脚本必须使用全路径。关于时间周期的设定,可以参考:
3.重启cron任务
sudo systemctl restart cron.service
有时候任务名称不一定是cron.service ,也有可能是crond.service。
4.开启cron日志
默认情况下,cron的日志是关闭的。可以通过修改配置文件打开,
sudo vim /etc/rsyslog.d/50-default.conf
将cron.*前面的#去掉,日志信息记录在/var/log/cron.log
修改后保存文件,仍然需要重启cron服务才能生效。
这样就可以通过查看/var/log/cron.log来监控任务执行情况。