Linxu定时任务删除任务和启动
1.首先编写要实现的任务脚本
#!/bin/bash #增加环境变量导入 . /etc/profile . ~/.bash_profile #kill echo 'kill进程' ps -ef | grep /kafkadata-MY/kafkadata-MY.jar | grep -v grep | awk '{print $2}' | xargs kill -9 #启动 echo '重新启动' cd /kafkadata-MY/ nohup /opt/jdk1.7.0_67/bin/java -jar /kafkadata-MY/kafkadata-MY.jar >/dev/null 2>>/kafkadata-MY/nohup.out&
这是一个shell脚本,此脚本用来执行一个jar包, 首先杀死源jar包的进程id, ps -ef | grep jar包 获取jar包进程参数, grep -v grep 为去除包含grep的进程行 awk '{print $2}'为打印第二个字段,即进程id,
xargs命令可以通过管道接受字符串,并将接收到的字符串通过空格分割成许多参数(默认情况下是通过空格分割) 然后将参数传递给其后面的命令,作为后面命令的命令行参数。kill -9 杀死进程.
nohup java -jar jar包 >/dev/null 2>>/nohup.out& >/dev/null是将日志输出指向空, 2为错误输出指向nohup.out,>>代表不创建文件直接将输出拼接在后面,&为挂载运行
2.crontab定时任务
安装就不说了.
crontab -l 列出当前用户的任务
crontab -e编辑当前用户任务
service crond reload为重新载入配置
0 5 * * * /bin/sh /kafkaData-MY.sh
这是一个定时任务,每天5点执行前面的shell脚本.