ubuntu16定时任务crontab

简介: 最近在ubuntu16上配置了个定时任务,好长时间没配置好,后来发现问题,cron配置文件换行符必须是 unix格式,否则执行不成功

ubuntu16定时任务crontab

缘起

最近在ubuntu16上配置了个定时任务,好长时间没配置好,
后来发现问题,cron配置文件换行符必须是 unix格式,否则执行不成功

cron文件语法

crontab是linux中周期性的执行任务的一个守护进程,与windows下的计划任务类似
crontab使用最小维度为分钟

小时 星期 命令 注释
0-59 0-23 1-31 1-12 0-6 cmd 注释
5 * * * * ls 每小时的第5分钟执行一次ls
30 5 * * * ls 每天的 5:30 执行ls
30 7 8 * * ls 每月8号的7:30分执行ls命令
30 5 8 6 * ls 每年的6月8日5:30执行ls命令
30 6 * * 0 ls 每星期日的6:30执行ls 0表示星期天
*/5 * * * * ls 每5分钟执行ls
*/1 * * * * ls 每1分钟执行ls
0 * * * * ls 每小时执行
0 0 * * * ls 每天执行
0 0 * * 0 ls 每周日执行
0 0 1 * * ls 每月执行
0 0 1 1 * ls 每年执行
15,30,45,59 * * * * ls 每隔15分钟执行一次ls
* 代表取值范围内的所有可用的值,例如*在指代month时表示每月执行
/ 代表”每”,指定步进设置,如0-59/2定义每两分钟执行一次
- 代表从某个数字到某个数字,例如1-4意思是整数1,2,3,4
, 分开几个离散的数字,如:3,4,6,8表示这四个指定整数

crontab 命令

crontab -l #列出某个用户cron服务的详细内容
crontab -r #删除某个用户的cron服务
crontab file [-u user] #用指定的文件替代目前的
crontab -e #编辑某个用户的cron服务
crontab-c dir #指定crontab的目录

举例来说明

crontab.cron 换行符必须是 unix格式,否则执行不成功
换行符错误时cron日志:(/root/crontab/syncDuser/syncDuser.sh^M)
换行符正确时cron日志:(/root/crontab/syncDuser/syncDuser.sh)

定时执行syncDuser.sh脚本

在/root/crontab下创建 crontab.cron 文件 内容见下面例子

crontab crontab.cron  #将定时文件加到到订时器中
crontab -l  #检测定时任务有没有加入系统中,能看到上面2个定时任务说明成功;
crontab -r  #取消所有定时任务

crontab.cron内如如下

#每隔1分钟执行
*/1 * * * * /root/crontab/syncDuser/syncDuser.sh
#每天早上3点执行
0 3 * * * /root/crontab/syncDuser/syncDuser.sh

syncDuser.sh内容如下,每次执行创建一个txt文件,并写入“开始”
请先保证手动执行无误,再定时执行

#!/bin/bash

logFile=/root/crontab/syncDuser/bak/"`date +'%Y%m%d-%H-%M'`".txt;
echo "===开始==" >> ${logFile};

查看crontab日志

Ubuntu16中crontab默认日志没有开启,建议不要开

vim /etc/rsyslog.d/50-default.conf #修改rsyslog配置文件
cron.* /var/log/cron.log #将cron前面的注释符去掉
service rsyslog restart #重启rsyslog
less /var/log/cron.log #查看crontab日志
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
5月前
|
Ubuntu Linux 数据安全/隐私保护
Linux Ubuntu crontab 添加错误 提示:no crontab for root - using an empty one 888
错误提示: no crontab for root - using an empty one 888
193 0
Linux Ubuntu crontab 添加错误 提示:no crontab for root - using an empty one 888
|
Ubuntu
ubuntu 设置crontab日志
ubuntu 设置/etc/rsyslog.d/50-default.conf 打开crontab日志
341 0
|
JavaScript Ubuntu Linux
Ubuntu下用crontab部署定时任务
linux下的crontab 写定时任务: 通过如下命令,就可以开启本用户的定时文件,文件存放在 /var/spool/cron/crontabs 文件夹下 并且以当前用户的名字命名的文件。
248 0
|
关系型数据库 MySQL Linux
Golang入门教程(二)Ubuntu16.04下安装golang(实例:Golang 定时任务管理器)
通过两种方式安装 一、通过apt-get安装1、安装 sudo apt-get install golang 2、设置GOPATH变量 GOPATH是扩展库的目录,Go先搜索标准库目录,然后搜索GOPATH库目录,所有的非标准库都放在GOPATH下。
2261 0
|
Ubuntu JavaScript Shell
Ubuntu 使用crontab定时任务
 自从服务器迁移以后,自定义的代码仓库备份脚本一直没有执行过,可是原来机器的环境已经不存在了,只能自己摸索。虽然知道cron是用来实现定时任务的,但是一直不知道怎么做,今天终于出了结果,下面是我实现的方法(环境Ubuntu8.04)。
1167 0