这是之前在自己博客里写过的文章,发现今天又犯了里面全路径的错误。再次阅读并记录。哎~~~ 学渣记忆力都很差。
因为要跑一个python的日常,所以决定用crontab把这个脚本添加进去,因为之前没有接触过crontab,所以就在网上查阅了它的用法,其实在 /etc/crontab 里就可以查看 里面很详细,具体内容如下
* * * * * user-name command to be executed
前面共有5个参数,分别如下
第一个* 是分钟minute 范围(0~59)一小时共60分钟
第二个* 是时 hour 范围在(0~23)一天共23小时
第三个* 是日 day of month 范围在(1~31)一个月的天数
第四个* 是几月份 month 范围(1~12)或者写成Jan,Feb,Mar,Apr,…一年的月份
第五个* 是星期几 day of week 范围(0~7) 其中0,7都代表星期日,或者写成英文sun,mon,tue,wed,thu,fri,sat
user-name 即执行用户
command 就是要执行的命令,以我这次的命令为例:
10 12 * * * python /home/test/ftpupload.py 意思是每天十二点十分 执行这个脚本
在这里,就出现了一些我遇到的问题,加载进去之后发现每天从来没有跑。于是就有了下面的一些排错(到最后发现是个很傻的错误)先在 /var/log/cron 中查看 每天日志正常,脚本显示已经跑成功。
把命令修改为
*/5 * * * * python /home/test/ftpupload.py && touch /home/test/brose.txt意思是每一分钟执行一次脚本,并创建brose.txt文件,发现此文件生成,说明cron没有任何问题,剩下就是排查脚本的问题。
这个脚本我是现每次在本地生成一个test.txt 然后上传至ftp里面。在百度了一下之后,发现crontab中的命令要添加全路径,然后查看自己的脚本,里面没有添加#!/usr/bin/python。linux中 where is python 可以查看python的安装位置 然后添加路径。我每次都是通过查看本地生成test.txt的时间和大小来确定脚本是否运行成功,这就导致我后来一个误解。每次单独运行次脚本test.txt就会发生变化。但是加入crontab运行之后test.txt就没变化。后来发现ftp中已经接受到了文件,一次把问题就定位在了本地文件的生成,发现生成路径没有使用全路径,改过之后好了。
其实都是一些小问题,但是处理了好半天。一步步排查就好了,写此博客记录。