输入以下命令可以查看所有的定时任务详情
crontab -l
输入以下命令可以编辑定时任务
crontab -e
先按 i 进入编辑模式,然后进行更改,退出时需要依次按 Esc :wq 来进行变更的保存
crontab -e打开的文件的第一行必须加入以下命令,即为其设置环境变量,方便找到bash命令所在的位置
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
后面几行就是定时任务的设置了
01 09 * * * /usr/local/java/jdk1.8.0_144/bin/java -jar /usr/local/javatest/kano_it_attendance/DingAttendanceSpringToday.jar
59 23 * * * /usr/local/java/jdk1.8.0_144/bin/java -jar /usr/local/javatest/kano_it_attendance/DingAttendanceSpringToday.jar
* * * * * bash /root/nohup.sh
分别表示每天的09:01、23:59会跑一下这个jar包,需要注意的是,java前面的前缀必须要写,一直指向到bin目录下的java命令才行,然后后面的jar包路径也要写全。最下面那条表示每分钟都执行一个bash指令,当然.sh文件的路径也要写全(此时bash能这么简单写的原因,是因为最上面PATH环境变量定义好了,能找到bash命令了)
关于nohup.sh文件怎么写👇
先新建这个文件,在里面输入相应的bash命令,然后用 chmod +x nohup.sh 命令为该脚本添加执行权限
#!/bin/bash
# 查询是否存在DingAttendanceExhibition进程
# process_exists=$(pgrep -f DingAttendanceExhibition)
# 查询8091端口是否存在进程,并将进程id赋值给前面的变量
process_exists=$(lsof -t -i :8091)
# -n表示 is not null
if [ -n "$process_exists" ]; then
# echo "$process_exists" > /root/1.txt
# 说明进程id存在,则删除该进程
kill -9 $process_exists
fi
# 使用nohup启动进程并输出到指定文件
nohup /usr/local/java/jdk1.8.0_144/bin/java -jar /usr/local/javatest/kano_it_attendance/DingAttendanceExhibition-0.0.1-SNAPSHOT.jar > /dev/null 2> /dev/null &
#!/bin/bash,必须要写,表明了该文件是可执行文件
其余#开头的都是注释的意思
process_exists=$(lsof -t -i :8091),表示变量的定义和被赋值
echo "$process_exists" > /root/1.txt,表示将这个变量输出保存到/root/1.txt文件中
最后的nohup java -jar X.jar同理,java前面的前缀路径要写全(否则找不到java环境变量),.jar包前面的路径也要写全