ubuntu crontab 简单使用
ubuntu crontab 的简单实用 以及 时区
linux命令——crontab的使用方法
https://blog.youkuaiyun.com/wd2011063437/article/details/78960668
sudo service cron status –查看cron的状态
sudo service cron restart –重启crontab服务
crontab -l –查看当前的定时任务列表
crontab -e –打开当前用户的定时文件,无则会新建 文件位置在 /var /spool/cron/crontabs 下
sudo systemctl restart cron
sudo cat /var/log/syslog
sudo hwclock --systohc
查看本地时间 timedatectl status
sudo timedatectl set-timezone Asia/Shanghai
安装:sudo apt-get install cron
启动:sudo service cron start
重启:sudo service cron restart
停止:sudo service cron stop
检查状态:sudo service cron status
查询cron可用的命令:sudo service cron
检查Cronta工具是否安装:sudo crontab -l
Ubuntu系统默认是不打开cron日志的,在cd 到/var/log目录下是找不到cron.log文件
可以通过sudo vi /etc/rsyslog.d/50-default.conf
将下面行注释去掉,保存
执行sudo service rsyslog restart 即可
重启日志服务
sudo service rsyslog restart
过一段时间后定时日志就会刷新
查看日志cat cron.log
tail -100 /var/log/cron.log
例子
sudo crontab -e
Select an editor. To change later, run ‘select-editor’.
- /bin/nano <---- easiest
- /usr/bin/vim.basic
- /usr/bin/vim.tiny
- /bin/ed
7 14 18 * * echo “hello” >> /home/xxx/aaa.txt > /dev/null 2>&1
每个月18号的 14点 07 分钟,执行 这个语句
二、crontab文件的含义
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute hour day month week command
分 时 日 月 周 命令
其中:
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符:
星号():代表所有可能的值,例如day字段如果是星号,则表示在满足其它字段的制约条件后每天都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如/10,如果用在minute字段,表示每十分钟执行一次。
linux注释crontab文件及crontab执行sh的坑怎么解决
https://www.php.cn/faq/540596.html
浅谈 crontab 里面常见的 >/dev/null 2 > &1
https://blog.youkuaiyun.com/JineD/article/details/107177700
crontab 变量为空
Crontab调用shell脚本函数中变量为空
问题:
在写一个任务脚本shell,Crontab运行后发现函数中的变量为空。
但是不使用Crontab,直接执行shell可以运行,变量有值。
解决方案:
方法一:
原因是Crontab运行时的环境与脚本的环境不一致,在脚本中加上刷新环境变量的就好了。如下:
check函数就出现了上面描述的问题。
我们在
#!/bin/bash
后面加上
. /etc/profile
即可。
方法二:
把grep等命令修改为全路径(绝对路径),使用whereis grep(可以替换其他的)。查看绝对路径,然后替换相对路径即可。去掉. /etc/profile。