[已解决]cron的run-parts执行问题。
自由狼-台风
|
1#
自由狼-台风 发表于 2008-05-06 12:26
[已解决]cron的run-parts执行问题。
已解决,谢谢关注。原因为我的系统中缺少“run-parts”命令。
我在 http://examples.oreilly.com/upt3/ 处找到一个“run-part”的简易替代品: run-parts.sh
复制内容到剪贴板
========================================代码:#!/bin/bash# Source: # [url]http://examples.oreilly.com/upt3/[/url] # Author: # O'RIILY # Gain: # 2008-05-07 16:05 # run-parts - concept taken from Debian # keep going when something fails set +e if [ $# -lt 1 ]; then echo "Usage: run-parts <dir>" exit 1 fi if [ ! -d $1 ]; then echo "Not a directory: $1" exit 1 fi # Ignore *~ and *, scripts for i in $1/*[^~,] ; do [ -d $i ] && continue # Don't run *.{rpmsave,rpmorig,rpmnew,swp} scripts [ "${i%.rpmsave}" != "${i}" ] && continue [ "${i%.rpmorig}" != "${i}" ] && continue [ "${i%.rpmnew}" != "${i}" ] && continue [ "${i%.swp}" != "${i}" ] && continue [ "${i%,v}" != "${i}" ] && continue if [ -x $i ]; then $i 2>&1 | awk -v "progname=$i" \ 'progname { print progname ":\n" progname=""; } { print; }' fi done exit 0 #!/bin/bash# Source: # http://examples.oreilly.com/upt3/ # Author: # O'RIILY # Gain: # 2008-05-07 16:05 # run-parts - concept taken from Debian # keep going when something fails set +e if [ $# -lt 1 ]; then echo "Usage: run-parts <dir>" exit 1 fi if [ ! -d $1 ]; then echo "Not a directory: $1" exit 1 fi # Ignore *~ and *, scripts for i in $1/*[^~,] ; do [ -d $i ] && continue # Don't run *.{rpmsave,rpmorig,rpmnew,swp} scripts [ "${i%.rpmsave}" != "${i}" ] && continue [ "${i%.rpmorig}" != "${i}" ] && continue [ "${i%.rpmnew}" != "${i}" ] && continue [ "${i%.swp}" != "${i}" ] && continue [ "${i%,v}" != "${i}" ] && continue if [ -x $i ]; then $i 2>&1 | awk -v "progname=$i" \ 'progname { print progname ":\n" progname=""; } { print; }' fidone exit 0 ######################################## 以下为原始问题。 ######################################## 试图每分钟都自动定时执行某任务失败。 打算自动执行的脚本为“/home/dba/123/db_maintenance/exec/export_new.sh”,内容为:
复制内容到剪贴板
手工执行“/home/dba/123/db_maintenance/exec/export_new.sh”会在"/tmp/cron_executed"里产生一条记录。但自动执行没有这个效果。代码:#!/bin/bash# Exporting database by cron. # Author: # Typhoon.Free.Wolf # Version: # 2008-05-06-01 echo -e "$(date)\n\t-" >> "/tmp/cron_executed" 我的“/etc/crontab”如下:
复制内容到剪贴板
自动执行时,“/var/log/cron”中每分钟都会添加“May 6 12:13:01 xz_server crond[6980]: (dba) CMD (run-parts /home/dba/123/db_maintenance/exec/)”记录,但“/tmp/cron_executed”的内容无变化。代码:# Generated by:# T.F.W # Creating: # 2008-05-04 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ OUTPUT=/tmp/cron_executed # Test. # Do command at any minute. #* * * * * root echo -e "$(date)\n\t-" >> $OUTPUT # Do command for every 1 minute. #*/1 * * * * root echo -e "$(date)\n\t1" >> $OUTPUT # Do command for every 2 minutes. #*/2 * * * * root echo -e "$(date)\n\t2" >> $OUTPUT # Do command for every 3 minutes. #*/3 * * * * root echo -e "$(date)\n\t3" >> $OUTPUT # Export database at XX:00, XX:30 in each day. */1 * * * * dba /home/dba/123/pg_db_export/export.sh #这个是每分钟都执行了。 # Maintence database once for each minute. */1 * * * * dba run-parts /home/dba/123/db_maintenance/exec/ #这个目录内有 脚本“export_new.sh”,但貌似执行没效果。 原因不明,求解。 |