参考资料:
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就是一个日志文件。