我试图设置两个独立的cron作业访问相同的静态文件。 其中一个作业每分钟运行一次,将新到达的数据汇总到文件中。 第二个作业每30分钟运行一次,parsing聚集的数据并截断该文件以在接下来的30分钟内重置该数据。 显然每30分钟就有一个潜在的僵局。 有没有办法为第一个任务写cron作业,以便每分钟只执行29分钟(不包括每分钟1-60,不包括30和60),然后在第31分钟重新开始? 谢谢! 编辑 通过请求,我使用PHP来执行这些操作(因为涉及到数据结构的一些重要用途)。 我已经实现了使用PHP的flock函数,而函数的文档指定阻塞直到1)获得locking,或者2)指定了LOCK_NB选项,这让我感到困惑的是,下面的例子似乎暗示即使是阻塞呼叫,也可能无法获得locking。 除非这是由于其他问题(权限,操作系统中断等)? 这个阻塞直到获得锁的问题真的是我的问题的动机,看看是否有另一种方法来完全避免locking文件,从而减轻了非阻塞锁试图失败和脚本停止的风险。
目前,我有一个简单的备份过程,每天通过cron运行一个脚本。 如果驱动器中有磁带,它将使用cpio来备份关键文件,每周完成一次完整的系统备份。 大多数情况下,这工作正常。 但是,出现的问题是每隔一次又一次,每周备份会失败,并出现以下错误: UX:cpio:错误:无法打开“/ dev / tty” 这几乎总是当前磁带已满的情况,并且由于作为cronjob运行, cpio不能访问控制terminal来提示下一个磁带。 第二天早上手动运行脚本工作正常。 但是,手动运行备份是不理想的,因为完整的系统备份需要大约五个小时,在此期间系统处于高峰使用状态(因此容易发生中间备份更改)。 让它在一夜之间自动运行是非常可取的。 清理不必要的文件系统,以适应一个单一的磁带只能带我到目前为止。 有什么办法可以自动化可以跨越磁带的备份作业吗? 我有第二个磁带驱动器,我可以添加到服务器,但不知道这是否会有所帮助。 除非绝对必要,否则我宁愿继续使用cpio,而不是经历全新备份系统的所有压力testing/文档。 为了logging,我正在运行SCO OpenServer 6 。
我已经设置了cron来运行一个简单的hello世界shell脚本,但它给了我一个错误,Google不帮我解决。 我必须错过一些非常简单的事情! 这是我的crontab: [email protected] SHELL=/bin/bash 30 * * * * * $HOME/hello.sh 这里是hello.sh: #!/bin/bash echo HELLO WORLD! 我收到这个错误邮件: /bin/bash: 555: command not found 我曾尝试将shell设置为/bin/sh但没有任何区别。 我仍然收到类似的错误信息。
我有一个个人用户名/密码在有限权限的Unix机器上。 每当我需要执行一些命令,我必须用su命令replace用户,然后正常执行。 现在,我需要添加一个使用这样的特权命令的cronjob,所以我在我replace的用户的crontab上添加了cronjob以访问这些命令。 奇怪的是,对我来说,这些命令作为一个cronjob运行的某些原因失败,虽然当我直接从shell执行它们(之后),他们无缝工作。 为什么会这样呢? 为什么这些命令不能作为cronjob的一部分?
我的目标是有一个特定的目录作为tmpfs可用。 在这个目录的服务器正常运行时间里会有一些修改,这些修改必须通过rsync同步到硬盘上的非tmpfs持久目录。 服务器启动后,非tmpfs持久目录的最新版本必须移动到tmpfs和rsync同步启动。 恐怕如果tmpfs目录将是空的,rsync将擦除非tmpfs备份。 我现在正在这样做: 在/ etc / fstab中创buildtmpfs分区 cat /etc/rc.local(伪代码) 如果有的话,从/ var / spool / cron / crontabs删除“tmpfs rsync”cronjob cp -r / path / to / non-tmpfs-backup / path / to / tmpfs / dir 用“tmpfs rsync”cronjob追加/ var / spool / cron / crontabs 你怎么看?
我得到这个cron 406错误页面。 编辑 我更新了cron来代替使用wget,但是我仍然没有从页面获得输出。 这里是新的crontab: /usr/bin/wget "https://abc.com/cron/sendBulletinEmails.php" >> /home/abc/public_html/cron/logs/sendBulletinEmails.log 但是,这甚至不使用日志文件。 我收到一封电子邮件。 这里是电子邮件输出: –09:20:01– https://abc.com/cron/sendBulletinEmails.php => `sendBulletinEmails.php' Resolving abc.com… 69.91.162.123 Connecting to fin-iq.com|69.91.162.123|:443… connected. HTTP request sent, awaiting response… 200 OK Length: unspecified [text/html] 0K 122.58 B/s 09:20:02 (122.58 B/s) – `sendBulletinEmails.php' saved [101] 我也试过这个crontab(得到正确的输出): /usr/bin/wget –append-output=/home/abc/public_html/cron/logs/sendBulletinEmails.log "https://abc.com/cron/sendBulletinEmails.php" 但是,这也给了我与电子邮件相同的日志。 该页面输出文本,这是我想在我的日志文件中logging。 任何想法如何使这项工作? 再次感谢! 旧 这里是crontab(从cPanel复制): * * […]
我可以更改默认的crontab编辑器为vi编辑器吗? 如果是这样,怎么样?
你如何使用cron? 我刚开始使用它进行备份,但它是一个应该有大量应用程序的工具。 我会有兴趣学习不同的人使用cron。
我在Cpanel中设置了一个crontab来运行每分钟。 这工作很好,但我不想每分钟都收到一封电子邮件。 我有第二个cron选项卡,每天运行。 我想要这个标签的回应。 有没有办法告诉crontab无声或只有电子邮件的错误? 我有: * * * * * php /home/public_html/folder/file.php 2>&1 我添加了最后一位2>&1因为我认为它会让它保持沉默。 从Cpanel Docs: 你可以让cron每次运行一个命令发送一封邮件。 如果你不想为单个cron作业发送邮件,你可以像下面这样将命令的输出redirect到/ dev / null:mycommand> / dev / null 2>&1
我注意到在我的RHEL 5.5上,cron每天都会启动一个小时(凌晨1点,而不是午夜)。 系统和硬件时钟是一样的。 我怎样才能设置它,所以它会在午夜开始? date [root@a ~]# date Wed Mar 9 12:44:35 EST 2011 hwclock的 [root@a ~]# /sbin/hwclock -r Wed 09 Mar 2011 12:44:42 PM EST -0.000484 seconds crontab中 0 0 * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1 cron日志 Mar 7 01:00:01 host crond[30420]: (root) CMD (/usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1) 时钟 [root@a ~]# cat /etc/sysconfig/clock […]