linux系统下的定时任务

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lijinshanba/article/details/81564541

参考资料:

1. http://www.blogjava.net/decode360/archive/2009/09/18/287743.html

2. https://www.cnblogs.com/bcphp/p/7084967.html

首先可以使用命令

cat / etc / crontab

查看一下/ etc / crontab中文件:

     (下面这部摘自参考资料)前四行是有关设置的cron任务运行的环境变量.SHELL变量的值指定系统使用的SHELL环境(该样例为bash外壳),PATH变量定义了执行命令的路径.Cron的输出以电子邮件的形式发给MAILTO变量定义的用户名。如果MAILTO变量定义为空字符串(MAILTO =“”),电子邮件不会被发送。执行命令或脚本时HOME变量可用来设置基目录。

该文件核心的命令就是

* / 1 * * * * root sh /root/installfile/1.9.6/szx.sh

我们来解析一下这种命令的格式

 XXXXX        用户名            命令

分时日月星期几用户名相关命令

1. *代表所有可能的取值

2. * / 1代表每一个单位时间执行一次,在我这里就表示1分钟执行一次,数字改成5就是5分钟执行一次。

3.用户名这里是用户名

4.我们的命令就是执行 /root/installfile/1.9.6目录下的szx.sh,要在路径前加SH,表示执行这个脚本。

     这个命令意思的就是设置一个每分钟执行一次的定时任务,去执行脚本文件szx.sh,该脚本会往1.txt的输入“SSSSS”和往new.txt输入“new row”。

     我一开始犯了一个错误,我以为脚本往文本输入数据,是默认在本文件夹下创建的TXT文档并输入信息的,折腾了一下午才发现,默认是往根目录下创建的TXT文档并输入信息的,难怪我找不到,妈的。

    后来无意中在根目录下找到了我需要的文件,果然,一直在更新,于是我重新修改/ etc / crontab中里面的信息,加入命令

    HOME = /root/szx

   这回成功了,他貌似表示该路径下为工作路径,产生的txt文件也会放在该路径下。

强调一下,貌似需要把文件权限加上 x ,变成可操作的权限,

可以使用

     chmod +x szx.sh

嫌麻烦的可以直接

    chmod 777 szx.sh

这波这得是一波三折啊。

补充一点别的(摘自参考资料):

# record the memory usage of the system every monday 
# at 3:30AM in the file /tmp/meminfo 
30 3 * * mon cat /proc/meminfo >> /tmp/meminfo 
# run custom scrīpt the first day of every month at 4:10AM 
10 4 1 * * /root/scrīpts/backup.sh

#run-parts
01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每个星期执行/etc/cron.weekly内的脚本
42 4 1 * * root run-parts / etc / cron.monthly //每月去执行/etc/cron.monthly内的脚本

 大家注意“run-parts”这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。

service crond start //启动服务 
crond stop //关闭服务 
crond restart //重启服务 
crond reload //重新载入配置

查看crontab服务状态:service crond status 
手动启动crontab服务:service crond start 

补充:crontab -e

另外一种方法也可以更新 回头再补充吧mmp

更新于2018.08.22

crontab -e 没什么好讲的。

/etc/crontab是系统级别的crontab,系统的设置等,这种方法只有root用户能用
crontab -e是用户级的crontab,会被写到 /var/spool/cron 目录下,生成一个和用户名一致的文件,文件内容就是我们编辑的定时脚本,crontab命令实际是/usr/bin/crontab这个可执行文件

有些系统设置即使用root账号crontab -e也不行,必须放到/etc/crontab中。

参考资料:https://blog.csdn.net/fanren224/article/details/64906848

补充一点新的东西

如果在脚本文件里只想写ehco,不想写ehco >>,也可以。把这个任务交给crontab

在crontab里面使用 >>  

这样的话只要是脚本里的ehco,都会打印到/root/szx/dp_update.log里面。

这个xxxxx.log就是一个日志文件。

猜你喜欢

转载自blog.csdn.net/lijinshanba/article/details/81564541