我有一个应该每小时运行的脚本。 它运行良好一段时间,然后似乎停止工作后,应用了一些系统更新。 此时它停止工作,并在/tmp/greatscript.log中显示下面的错误 /bin/sh: /home/administrator/greatscript.sh: not found 这是crontab。 真的很基本,应该没有问题。 2 * * * * /home/administrator/greatscript.sh >/tmp/greatscript.log 2>&1 这里是它变得非常奇怪,我只是意识到,如果pipe理员login,cron触发和脚本工作很好。 但是,如果pipe理员注销: /bin/sh: /home/administrator/greatscript.sh: not found
我一直在遇到一个奇怪的问题,那就是在通过crontab执行的时候,rsync命令没有运行。 以下是代码: #!/bin/sh -x PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/mysql/bin:/opt/android-sdk-linux/tools:/opt/android-sdk-linux/platform-tools:~/usr/lib/jvm/jdk-6/bin /bin/sh /etc/profile MyUSER="root" # USERNAME MyPASS="password" # PASSWORD MyHOST="localhost" # Hostname Password="" #Linux Password MYSQL="$(which mysql)" if [ -z "$MYSQL" ]; then echo "Error: MYSQL not found" exit 1 fi MYSQLADMIN="$(which mysqladmin)" if [ -z "$MYSQLADMIN" ]; then echo "Error: MYSQLADMIN not found" exit 1 fi CHOWN="$(which chown)" if [ […]
我有一个简单的shell脚本,运行几个LFTP命令并处理这些文件。 当从bash直接运行时,我在屏幕上获得了LFTP命令的完整输出。 从以下的crontab运行时… */5 * * * * /bin/bash /home/user/ftp-getter.sh >> /var/log/ftp-getter.log 2>&1 我只得到我正在显式地回显一些输出和date命令的输出的行的输出。 LFTP返回的文本不会进入日志。 我已经试过把2>&1移到>>之前,仍然得到相同的结果。 当直接从命令行运行该crontab命令时,我在屏幕上和日志文件中都获得了LFTP输出。 但是不能在crontab中运行。 有没有什么特别的LFTP输出会导致这种情况,并可能适用于其他命令从crontab中的shell脚本运行?
这是我的crontab: MAILTO=michael 02 11 * * * bash /home/michael/projectname/nightly_tests.sh * * * * * python /home/michael/projectname/throwaway/hello.py 我的用户名正确指定: -bash-4.1 $ whoami迈克尔 以下是我想要每分钟运行的内容: -bash-4.1$ cat /home/michael/projectname/throwaway/hello.py print "hello world" 我的邮件文件是空的: -bash-4.1$ ll /var/mail/michael -rw-rw—- 1 michael mail 0 Feb 19 23:04 /var/mail/michael 为什么没有邮件被发送? 我能做些什么来解决这个问题? 我在CentOS(3.7.5-linode48)。 编辑 maillog这样说: -bash-4.1$ sudo tail /var/log/maillog Apr 13 11:49:01 servername postfix/sendmail[6989]: warning: […]
我创build了一个cron作业来执行每日备份,将其存储在目录/备份中 此备份目录位于VPS服务器的根目录[/],并且是由我们的VPS主机提供的独立备份分区。 IE它存储在不同的磁盘上。 所以我创build了一个shell脚本来运行备份并将其存储在那里。 #!/bin/sh mysqldump –all-databases | gzip > /backups/dbbackup-`date +%Y-%m-%d`.sql.gz 这会创build一个附带date的.gz备份。 它的作品,因为当我运行它,我得到我想要的。 但是我想要这个工作。 我编辑了crontab并将其设置为每天晚上9点运行。 0 21 * * * /backups/DBBackups.sh 我今天早上检查了cron日志, Jun 20 21:00:01 973900 CROND[13279]: (root) CMD (/backups/DBBackups.sh) 但是/ backups目录中没有文件。 我在哪里错了? 它会吐出一个错误,我不检查? 我仍然是这个东西的初学者。 后来我想按表导出一个特定的数据库,因为一个2GB的.sql文件很难用,如果我需要它。 另外,我很可能会碰到某种最大的文件大小。 但是留给我吧。 如果任何人都可以帮助得到这个脚本正确运行,将不胜感激。
我有一个ruby脚本写入STDOUT,有时STDERR。 我每5分钟通过一个crontab运行这个脚本: */5 * * * * /root/myscript.rb >> /var/log/myscript.log 2>&1 我注意到,日志文件不会被实时写入。 而是等到脚本退出,然后立即写入该日志文件。 我觉得我有其他脚本没有这种行为,但也许我错了。 这是如何工作? 有什么我应该寻找改变这种行为? 这是Ubuntu 12.04
我有一个调用脚本的cronjob。 我想把输出放在一个日志文件中。 问题是即使没有输出,也会创build日志文件。 由于这项工作每小时运行一次,而且大部分无关。 我结束了很多0字节的文件。 我可能追加到一个单一的日志文件,但我不知道是否有一个技巧来防止日志文件被创build或删除它,如果它是空的。 (我真的不想在第一个之后运行第二个cron-job来清理) 一个复杂的事实是日志文件名附有date/时间。 crontab中的行看起来有点像这样: /your/script.sh config.txt > outfilepath_`date +\%Y-\%m-\%d_\%H\%M`.html 我想这意味着我必须将date存储在一个variables中,然后检查该文件是否被创build/清空。 所以如果我拿Stone的答案,我会得到如下结果: logfile=outfilepath_`date +\%Y-\%m-\%d_\%H`; your/script.sh config.txt > $logfile; if [! -s $logfile]; then rm $logfile; fi 但是我不知道在crontab里面是否有可能
我有一个脚本,我写了一个OS X机器(v 10.7.4),如果一个卷是上或下来validation。 如果发生故障,应该发送一封电子邮件。 当我从命令行运行脚本时,它完美地工作,并显示我的控制宗卷(DGS_Ima_ASDF_ges_MTL)在我收到的电子邮件中。 但是,如果我在crontab中安排脚本,则表示我收到的电子邮件中的所有卷都已closures,包括我的控制卷。 有人可以告诉我如何解决这个问题。 这是我的脚本: #!/bin/bash array=("Chatelaine" "DGS_Ima_ASDF_ges_MTL" "FMC_MTL" "GF_MTL" "Holding_Tank_MTL" "LACM_MTL" "LAP_MTL" "actualite" "Loulou" "Loulou_Web" "MQC_MTL" "PS_MTL" "QP_MTL" "Visuels_MTL") [email protected] SAVE_TO=~/Documents/drives_not_mounted CRONTAB_CONFIG=~/Documents/crontab_paramaters rm $SAVE_TO for counter in ${!array[*]} do mount | grep ${array[counter]} if [ $? -ne 0 ]; then echo "${array[counter]}" >> $SAVE_TO fi done ls ~/Documents | grep drives_not_mounted […]
我们的一台服务器有大约20-25个不同的cron作业。 通常,我们使用crontab -l > cron.jobs定期检查cron作业到repo中的文件 在启动一个新的服务器(这是以前的服务器的复制品(在操作系统和部署的代码库方面)时,是否可以从包含有效cron作业的文件中为新服务器提供cron作业?
我有一个CentOS 6.4机器,它是用pam_ldap和pam_krb5设置的。 它被configuration为使用我们的Active Directory服务器进行身份validation。 我可以使用AD帐户SSH进入机器。 我还没有设置任何一种keytab文件。 我在CentOS机器上为AD用户设置了一个crontab,它每分钟将一些数据写入一个文件。 作业正在写入的文件夹位于NFS共享中,并且该文件夹已locking,以便只有特定AD组的成员才能访问该文件夹。 有问题的AD用户是该组的成员,在CentOS机器上没有本地帐户。 当AD用户未login时,cron如何继续以AD用户身份运行作业?