crontab学习

crontab 可以用来定时调度 某个程序或者某个脚本

crontab默认情况下是不执行开启的,需要手动开启服务

修改rsyslog服务
将 /etc/rsyslog.d/50-default.conf 文件中的 #cron.* 前的 # 删掉;用以下命令重启rsyslog服务:

service rsyslog restart;

然后再重启crontab服务:

service cron restart;

网上很多人说开启,停止或者重启contab服务用命令 service crond restart,执行这个命令会报出 unrecognised service ,这里吧 crond 改成 cron 就可以了。
之后,在这个位置 /var/log/cron.log 就可以查看定时任务的文件日志文件了;
下面这个命令还可以查看crontab的状态

service cron status;

*报错后选做
安装网络邮件模块
sudo apt-get install postfix
中间需要一些选择,tab键可以切换选项,回车确定选择 有一步选择local mode
每次自动运行完发送的邮件在/var/mail/ll中

1 编写脚本 放入家目录

vi  ~/pi.sh

内容为

#!/bin/bash
. ~/.bashrc
. /etc/profile
export JAVA_HOME=/home/ll/software/jdk1.8.0_181
export HADOOP_HOME=/home/ll/software/hadoop export
ZK_HOME=/home/ll/software/zookeeper export
HBASE_HOME=/home/ll/software/hbase export
PATH=$PATH: $ JAVA_HOME/bin: $ HADOOP_HOME/bin: $ HADOOP_HOME/sbin: $ ZK_HOME/bin: $ HBASE_HOME/bin
JAR_FILE="/home/ll/software/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.0.jar"
echo “starting…” date yarn jar $JAR_FILE pi 10 1000 >> ~/log.txt
echo “===============================”

解释:
行1 shell脚本必须写的内容
行2 行3 crontab任务中不会引用环境变量故有些命令会失效,此处意思为引入环境变量
行10 定义变量JAR_FILE内容为某个jar包,例如 pi的jar包
行11 运行时输出start…
行12 输出时间
行13 提交pi任务 因为默认情况下cron 输出结果会通过邮件方式发送 我们没有邮件系统故结果直接重定向到某个文件中

记住要:更改脚本权限

chmod a+x pi.sh

2 脚本编写好后新建crontab任务

crontab -e

第一次进入需要选择某种编辑器
输入命令后进入 vi 编辑器 意为部署某个任务
该编辑器中每行内容结构如下 代表在某年某月某日某分执行某个命令

  *  *  *  *  *  /bin/bash ~/pi.sh

写完后保存退出
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置

解释:
字段名称 说明 取值范围
分钟 每小时的第几分钟执行 0-59
小时   每日的第几个小时执行 0-23
日期 每月的第几天执行 1-31
月历 每年的第几月执行 1-12
星期 每周的第几天执行 0-6
命令名称 欲执行的命令及参数

符号  说明

* 	表示任何时刻
, 	表示分割
- 	表示一个段,如第二段里: 1-5,就表示1到5点
/n 	表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.

以下是常用的一些时间间隔写法

15 05 * * *    每天的05:15 执行
0 17 * * 1 每周一的 17:00 执行
0,10 17 * * 0,2,3 每周日,周二,周三的 17:00和 17:10 执行
0 21 * * 1-6   周一到周六 21:00 执行
*/10 * * * *        每隔10分 执行
* 1 * * *         从1:0到1:59 每隔1分钟 执行
0 */1 * * *        毎时0分 每隔1小时 执行
2 8-20/3 * * *      8:02,11:02,14:02,17:02,20:02 执行

3 查看服务状态

service cron status

发布了20 篇原创文章 · 获赞 0 · 访问量 254

猜你喜欢

转载自blog.csdn.net/weixin_43570155/article/details/103732625