2014-07-16 78 views
0

我正在使用shell脚本删除我的Linux机器中的日志文件。我已经使用crontab定期执行这项工作。我可以手动执行这个脚本,看看它工作正常。但脚本不是通过cron作业触发的。Shell脚本手动运行,但不通过cron作业执行

外壳脚本:

[根@ testVM-dev的日志]#VIM /path_to_dir/log_cleanup.sh

#!/bin/bash 

now=$(date) 
echo "Cron Job to delete log files [email protected] $now" | tee -a /path_to_dir/log/cronjob_log.log 

/usr/bin/find /path_to_dir/log/localhost_access_log.* -type f -mtime +5 -print -delete | tee -a /path_to_dir/log/cronjob_log.log 

echo "Delete files completed!" | tee -a /path_to_dir/log/cronjob_log.log 

crontab条目:(试验每分钟)

[[email protected] log]# crontab -l 
*/1 * * * * root /path_to_dir/log_cleanup.sh 

此外,我已经在cron日志中检查了每分钟执行一次作业。但我看不出有针对性的日志文件中的任何日志 “cronjob_log.log”

的cron日志:

VIM /无功/日志/ cron的

Jul 16 03:56:01 rstestVM-dev crond[19131]: (root) CMD (root /path_to_dir/log_cleanup.sh) 
Jul 16 03:57:01 rstestVM-dev crond[19150]: (root) CMD (root /path_to_dir/log_cleanup.sh) 
Jul 16 03:58:01 rstestVM-dev crond[19168]: (root) CMD (root /path_to_dir/log_cleanup.sh) 
Jul 16 03:59:01 rstestVM-dev crond[19188]: (root) CMD (root /path_to_dir/log_cleanup.sh) 

谁能帮我在这里出了什么问题?

+0

你可以增加一段时间间隔,看看究竟发生了什么 – Satya

+0

你的意思是将频率从1分钟增加到更多(如5分钟左右)? – svjn

+0

是的,尝试将它添加到5分钟,然后看到 – Satya

回答

0

我已经找到了解决办法。我已经从crontab项&中删除了用户。

原始crontab条目:

[[email protected] log]# crontab -l 
*/1 * * * * root /path_to_dir/log_cleanup.sh 

修改后:

[[email protected] log]# crontab -l 
*/1 * * * * /path_to_dir/log_cleanup.sh 

现在我弄糊涂了,为什么在cron作业的用户条目没有工作?有人可以解释吗?

0

除了手动指定值PATH之外,请尝试指定teedate的路径。

/usr/bin/date/usr/bin/tee

+0

让我检查一下。谢谢.. :) – svjn

+0

它没有工作。我删除了日期并给出了/ usr/bin/tee的完整路径。但我仍面临同样的问题.. – svjn