添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

需要注意的是crontab里的cron表达式并不是标准的,它有自己的格式

*    *    *    *    *    command
M    H    D    m    d    command
               命令
1列表示分钟159 每分钟用*或者 */1表示
2列表示小时1230表示0点)
3列表示日期131
4列表示月份112
5列标识号星期060表示星期天)
6列要运行的命令或脚本内容
图片中是每5分钟运行一次 *.sh脚本 ,脚本里是sql命令: mysql -uroot -p'xxx' 库名 -e "sql语句"
crontab不能设置秒级运行,如果需要每隔5秒运行一次,可以将*.sh写成每5秒执行一次cleanSignStatus.sh的shell脚本.
比如 crontab -e:标记定时任务:***** command sh xxx/crontab.sh
crontab.sh内容:

#!/bin/bash

step=1 #间隔的秒数,不能大于60

for (( i = 0; i < 60; i=(i+step) )); do
$(sh /home/hap1/cleanSignStatus.sh)
sleep $step
done

exit 0

crontab.sh需要有可执行权限
写一个启动java的脚本文件startup.sh(这个脚本文件要和启动jar包放到同一目录下):

#!/bin/bash
nohup java -Xms1024M -Xmx1024M -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/javaapp/eMeeting-uat/file-upload/dump -jar file-upload-0.0.1-SNAPSHOT.jar >/dev/null 2>&1 &

/dev/null:表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。

2>&1:表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

这条命令的意思就是在后台执行这个程序,并将错误输出2重定向到标准输出1,然后将标准输出1全部放到/dev/null文件,也就是清空.

所以可以看出" >/dev/null 2>&1 "常用来避免shell命令或者程序等运行中有内容输出。

如果不加>/dev/null 2>&1 ,输出内容会在nohup.out里,加上后不会输出到nohup.out,如果项目中有logback-spring.xml等配置文件,则会按配置文件配置的目录保存输出内容,如果启动命令没有>/dev/null 2>&1并且项目用了logback-spring.xml,那输出日志会在nohup.out和logback配置目录下存在两份.