Ubuntu使用crontab设置定时任务

crontab常用命令

service cron start 开启服务

service cron stop 关闭服务

service cron restart 重启服务

service cron reload 重新载入配置

1 创建crontab任务

1.1 service cron status 查看定时任务是否开启

(base) [email protected]:~# service cron status
● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: ena
   Active: active (running) since Wed 2019-10-30 14:05:22 CST; 2 months 14 days
     Docs: man:cron(8)
Main PID: 637 (cron)
   CGroup: /system.slice/cron.service
           ├─  637 /usr/sbin/cron -f
           ├─21320 /titan/agent/titanagent -d
           └─21322 titan_monitor -p 21320 -l 50 -c 150 -g 0

Jan 13 13:52:01 node3 CRON[30126]: (root) CMD (/bin/bash /etc/titanagent/agent_m
Jan 13 13:52:01 node3 CRON[30125]: pam_unix(cron:session): session opened for us
Jan 13 13:52:01 node3 CRON[30127]: (root) CMD (/usr/local/easyops/agent/bin/moni
Jan 13 13:52:01 node3 CRON[30128]: (root) CMD (/bin/bash /etc/titanagent/agent_u
Jan 13 13:52:01 node3 CRON[30124]: pam_unix(cron:session): session closed for us
Jan 13 13:52:01 node3 CRON[30123]: pam_unix(cron:session): session closed for us
Jan 13 13:52:05 node3 CRON[30125]: pam_unix(cron:session): session closed for us
Jan 13 13:53:01 node3 CRON[30350]: pam_unix(cron:session): session opened for us
Jan 13 13:53:01 node3 CRON[30351]: (root) CMD (/usr/local/easyops/agent/bin/moni
Jan 13 13:53:01 node3 CRON[30350]: pam_unix(cron:session): session closed for us
lines 1-20/20 (END)...skipping...
● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-10-30 14:05:22 CST; 2 months 14 days ago
     Docs: man:cron(8)
Main PID: 637 (cron)
   CGroup: /system.slice/cron.service
           ├─  637 /usr/sbin/cron -f
           ├─21320 /titan/agent/titanagent -d
           └─21322 titan_monitor -p 21320 -l 50 -c 150 -g 0

Jan 13 13:52:01 node3 CRON[30126]: (root) CMD (/bin/bash /etc/titanagent/agent_monitor.sh >> /var/log/titanagent/edog.o.log 2>> /var/log/titanagent/edog.e.log)
Jan 13 13:52:01 node3 CRON[30125]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan 13 13:52:01 node3 CRON[30127]: (root) CMD (/usr/local/easyops/agent/bin/monitor.sh  >> /usr/local/easyops/agent/log/easyops.log 2>&1)
Jan 13 13:52:01 node3 CRON[30128]: (root) CMD (/bin/bash /etc/titanagent/agent_update_exception.sh >> /var/log/titanagent/check.o.log 2>> /var/log/titanagent/check.e.log)
Jan 13 13:52:01 node3 CRON[30124]: pam_unix(cron:session): session closed for user root
Jan 13 13:52:01 node3 CRON[30123]: pam_unix(cron:session): session closed for user root
Jan 13 13:52:05 node3 CRON[30125]: pam_unix(cron:session): session closed for user root
Jan 13 13:53:01 node3 CRON[30350]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan 13 13:53:01 node3 CRON[30351]: (root) CMD (/usr/local/easyops/agent/bin/monitor.sh  >> /usr/local/easyops/agent/log/easyops.log 2>&1)
Jan 13 13:53:01 node3 CRON[30350]: pam_unix(cron:session): session closed for user root

1.2 crontab -e 编辑用户的crontab文件的内容

*/2 * * * * /BigData/workspace/monitorCPU.py &  #每2分钟执行一次python任务(ctrl+c ctrl+x Y enter)

1.3 crontab -l 显示用户的crontab文件的内容

(base) [email protected]:~# crontab -l
20 */2 * * * /bin/bash /etc/titanagent/agent_update.sh >> /var/log/titanagent/check.o.log 2>> /var/log/titanagent/check.e.log
*/2 * * * * /bin/bash /etc/titanagent/agent_update_exception.sh >> /var/log/titanagent/check.o.log 2>> /var/log/titanagent/check.e.log
*/2 * * * * /bin/bash /etc/titanagent/agent_monitor.sh >> /var/log/titanagent/edog.o.log 2>> /var/log/titanagent/edog.e.log
* * * * * /usr/local/easyops/agent/bin/monitor.sh  >> /usr/local/easyops/agent/log/easyops.log 2>&1
*/2 * * * * /BigData/workspace/monitorCPU.py &

2 日志服务

2.1 修改rsyslog

sudo vim /etc/rsyslog.d/50-default.conf
cron.* /var/log/cron.log #将cron前面的注释符去掉

2.2 重启rsyslog

sudo service rsyslog restart

2.3 查看crontab日志

less /var/log/cron.log

注意: 这里必须重启日志服务,重启以后使用less查看可能还没有日志,需要等任务执行以后才能看到日志。

3 查看日志

(base) [email protected]:~# cat /var/log/cron.log

Jan 13 14:51:01 node3 CRON[6080]: (root) CMD (/usr/local/easyops/agent/bin/monit
Jan 13 14:52:01 node3 CRON[6156]: (root) CMD (/usr/local/easyops/agent/bin/monit
Jan 13 14:52:01 node3 CRON[6157]: (root) CMD (/BigData/workspace/monitorCPU.py &
Jan 13 14:52:01 node3 CRON[6161]: (root) CMD (/bin/bash /etc/titanagent/agent_up
Jan 13 14:52:01 node3 CRON[6160]: (root) CMD (/bin/bash /etc/titanagent/agent_mo
Jan 13 14:53:01 node3 CRON[6354]: (root) CMD (/usr/local/easyops/agent/bin/monit
Jan 13 14:54:01 node3 CRON[6434]: (root) CMD (/BigData/workspace/monitorCPU.py &
Jan 13 14:54:01 node3 CRON[6438]: (root) CMD (/bin/bash /etc/titanagent/agent_mo
Jan 13 14:54:01 node3 CRON[6436]: (root) CMD (/bin/bash /etc/titanagent/agent_up
Jan 13 14:54:01 node3 CRON[6437]: (root) CMD (/usr/local/easyops/agent/bin/monit
Jan 13 14:55:01 node3 CRON[6689]: (root) CMD (command -v debian-sa1 > /dev/null
Jan 13 14:55:01 node3 CRON[6690]: (root) CMD (/usr/local/easyops/agent/bin/monit
Jan 13 14:56:01 node3 CRON[6766]: (root) CMD (/usr/local/easyops/agent/bin/monit
Jan 13 14:56:01 node3 CRON[6765]: (root) CMD (/BigData/workspace/monitorCPU.py &
Jan 13 14:56:01 node3 CRON[6767]: (root) CMD (/bin/bash /etc/titanagent/agent_mo
Jan 13 14:56:01 node3 CRON[6770]: (root) CMD (/bin/bash /etc/titanagent/agent_up

crontab -e 修改后:

sudo service rsyslog restart #重启rsyslog

service cron restart #重启服务

实例:crontab定时JAVA任务

在class所在文件目录下创建java.sh脚本

#!/bin/bash

#java环境目录
export JAVA_HOME=/opt/java/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# kafka环境目录
export KAFKA_HOME=/opt/kafka/kafka_2.11-0.10.2.2
export PATH=$KAFKA_HOME/bin:$PATH
export CLASSPATH=.://opt/kafka/kafka_2.11-0.10.2.2/libs/*
# class文件所在目录
cd /opt/workspace/Demo/src/main/java
# 需要执行的命令
java KafkaTest

注意:
不添加class文件所在目录报错如下:

Error: Could not find or load main class KafkaTest

不添加kafka环境目录报错如下:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/kafka/clients/consumer/KafkaConsumer
    at KafkaConsumerTest6.main(KafkaConsumerTest6.java:45)
Caused by: java.lang.ClassNotFoundException: org.apache.kafka.clients.consumer.KafkaConsumer
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

编辑crontab -e

*/2 * * * * /opt/workspace/Demo/src/main/java/java.sh >> /opt/Data/out.log 2>&1 #每2分钟执行一次

重启

sudo service rsyslog restart  #重启rsyslog
service cron restart  #重启服务

kill掉进程日志如下:

/opt/workspace/Demo/src/main/java/java.sh: line 12: 20691 Killed                  java KafkaTest
/opt/workspace/Demo/src/main/java/java.sh: line 12: 21016 Killed                  java KafkaTest
/opt/workspace/Demo/src/main/java/java.sh: line 12: 20379 Killed                  java KafkaTest
/opt/workspace/Demo/src/main/java/java.sh: line 12: 20079 Killed                  java KafkaTest

原文地址:https://www.cnblogs.com/eugene0/p/12222859.html

时间: 2024-10-12 09:04:58

Ubuntu使用crontab设置定时任务的相关文章

ubuntu crontab设置定时任务

crontab -l  #查看详情crontab -e #设置定时任务 * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示月份1-12 第5列标识号星期0-6(0表示星期天) 第6列要运行的命令 例子: 30 21 * * * /usr/local/etc/rc.d/lighttpd restart           #每晚的21:30重启apache. 45

使用crontab设置定时任务

配置文件 crontab主要的配置文件如下: /etc/crontab:系统cron表 /etc/cron.d/*:保存由软件包安装脚本创建的cron文件的目录 /var/spool/cron/*:保存用户创建的cron文件的目录 /etc/cron.allow:权限允许文件 /etc/cron.deny:权限禁止文件 cron使用shell(/usr/bin/sh)从用户的HOME目录调用该命令. cron为每个shell提供了一个默认环境: HOME=<Users Home Dir> LO

ubuntu使用crontab启动定时任务

Ubuntu cron 定时执行任务 https://blog.csdn.net/qq_38228830/article/details/80545004 参考以上两篇博客,经过实践完成自己的定时任务 crontab命令 crontab 命令用于安装.删除或者列出用于驱动cron后台进程的表格.也就是说,用户把需要执行的命令序列放到crontab文件中以获得执行,每个用户都可以有自己的crontab文件.以下是这个命令的一些参数与说明: 1)crontab -u /*设定某个用户的cron服务*

使用python crontab设置linux定时任务

熟悉linux的朋友应该知道在linux中可以使用crontab设置定时任务.可以通过命令crontab -e编写任务.当然也可以直接写配置文件设置任务. 但是有时候希望通过脚本自动设置,比如我们应用程序部署时等.有需求当然就得想办法解决,不然在程序猿界混(一群自得其乐的猿). 下面进入正题,开始想通过以写文件的形式设置,通过在配置文件中直接追加一行即可.但是读写文件难免有点繁琐,再比如:设置任务时要检查任务是否已经存在:根据输入参数设置相应的任务等.以读写文件难免不太合适.所以想到了"万能&q

详解使用python crontab设置linux定时任务

熟悉linux的朋友应该知道在linux中可以使用crontab设置定时任务.可以通过命令crontab -e编写任务.当然也可以直接写配置文件设置任务. 但是有时候希望通过脚本自动设置,比如我们应用程序部署时等.有需求当然就得想办法解决,不然在程序猿界混(一群自得其乐的猿). 下面进入正题,开始想通过以写文件的形式设置,通过在配置文件中直接追加一行即可.但是读写文件难免有点繁琐,再比如:设置任务时要检查任务是否已经存在:根据输入参数设置相应的任务等.以读写文件难免不太合适.所以想到了“万能”的

ubuntu 设置定时任务

crontab -l  #查看详情crontab -e #设置定时任务 * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示月份1-12 第5列标识号星期0-6(0表示星期天) 第6列要运行的命令 例子: 30 21 * * * /usr/local/etc/rc.d/lighttpd restart           #每晚的21:30重启apache. 45

linux设置定时任务crontab

linux设置定时任务crontab 前段时间参照一个博友的git设置了mongoDB的定时备份,后来发现并未成功,今天重新配置了一下,把crontab的两种设置方式都尝试了,而且测试可以正常工作. 测试机器 ubuntu14.04 1.(推荐方式)用户级别的定时任务设置 使用如下命令 crontab -e 添加一条测试脚本: #*/1 * * * * sh ~/Desktop/myshare/cronjob.sh#每隔一分钟执行桌面文件夹中的这个脚本 然后,更新crontab service

简单易懂的crontab设置工具集

导读 在上一篇文章中,我介绍了crontab的配置文件以及如何设置定时任务,对于偶尔用一次crontab的同学而言,可能遗忘配置语法会很快,这里我向大家推荐几个在线设置crontab任务的网站. generate it 这个网站上很多web相关工具,如:CSS tools.image tools.SEO tools等,这里我们着重介绍website tools下的Cron Job Generator.这个工具提供了自定义和一些定时模板.可以快速生成crontab定时任务的配置文件. 如上图所示,

浅谈 linux 例行性工作 crontab (linux定时任务)

定时任务大家都挺说过,就好比你手机上的闹钟,到了指定的时候就会响起. 今天在对redis缓存进行定时储存时又操作了一把,发现一些细节,写的不好.大家就将就看吧, 首先 简单介绍一下linux 例行性工作 两种方式, 主要有两种: at   (和下面一样,只是它只定时执行一次就结束) crontab 演示定时执行php程序将数据插入数据库: 一个案例表:blog 1 CREATE TABLE `blog` ( 2 `blog_id` int(10) unsigned NOT NULL AUTO_I