我有一份工作,它从一开始就永远运行。所以我只想在将它输入到“crontab -e”文件并在重新启动时保存它(或)后只启动一次。
如何实现这一目标?
我有一个 centos 服务器,我想每两天晚上 11 点在它上面运行一个作业,我该怎么做?
我需要在 cpanel 中设置一个 cron 作业,每周调用一次 URL(在同一台服务器上)。我打算使用wget但事实证明这在正在使用的共享服务器上被禁用。
wget有替代品吗?我听说可以使用curl,但我不知道如何在 cron 命令中进行设置。
另外,让 cronjob 在完成时什么都不做的命令是什么?
任何想法都非常感谢!
首先,如果这是错误的堆栈交换,我很抱歉,但它似乎是正确的。
这是我现在的 crontab:
MAILTO=****@gmail.com
10,30,50 * * * * ~/webapps/****/apache2/bin/start
*/10 * * * * /usr/local/bin/python2.7 ~/webapps/****/WR/cron.py > ~/webapps/****/WR/cron.log 2>&1
Run Code Online (Sandbox Code Playgroud)
但是每次将输出放入 cron.log 文件时,所有旧内容都会被覆盖。我该如何阻止?或者,如果不可能,有什么替代方法?
注意:****URL 和电子邮件中的 用于隐藏个人信息。
我正在尝试设计一个程序,当某个(非周期性)事件发生时发送文本。现在,我想要一个脚本来查找此事件何时发生,然后安排一个(类似 cron 的)作业,该作业将在该事件发生之前发送文本。
更具体的示例如下所示:
脚本 A 运行并检测事件的下一次
脚本 A 使用 ??? 安排脚本 B 在 $time 运行
在 $ 时间,???调用发送文本的脚本 B。
问题是,事件可能发生在 11 天内的随机时间,而且只会发生一次。Cron 似乎不适合这个——我不希望这个工作运行不止一次。
所以我猜(简而言之),是否有一个实用程序可以提供非周期性脚本的延迟执行?
我希望每天两次从服务器上的 PHP 脚本中获取内容,更改查询变量lang以设置我们想要的语言,并将此内容保存在两个特定于语言的文件中。这是我的 crontab:
*/15 * * * * ~root/apache.sh > /var/log/checkapache.log
10 0 * * * wget -O /path/to/file-sv.sql "http://mydomain.com/path/?lang=sv"
11 0 * * * wget -O /path/to/file-en.sql "http://mydomain.com/path/?lang=en"
Run Code Online (Sandbox Code Playgroud)
问题是只有第一个 wget 命令行正在执行(或者准确地说:正在写入的唯一文件是/path/to/file-sv.sql)。如果我切换第二行和第三行,/path/to/file-en.sql则会被写入。第一行总是按预期运行,无论它在哪里。
然后我尝试使用lynx -dump "http://mydomain.com/path/?lang=xx" > /path/to/file-xx.sql无济于事; 仍然只有第一行执行成功。即使混合 wget 和 lynx 也没有改变这一点!
有点绝望了!我错过了什么吗?关于 crontab(结合)wget 或 lynx 的文章数以千计,但似乎都涵盖了基本的设置和语法。有没有人知道我做错了什么?
谢谢,
亚历山大
我可以crontab -e作为普通用户使用来编辑我的用户 crontab。anacron 是否有针对个人非管理员用户的任何类似功能,或者它是否只有系统范围的 anacrontab?
我正在玩一些日期的变化,比如
DATE = $(date)
Run Code Online (Sandbox Code Playgroud)
但这也不起作用
crontab -e
CRONLOG=/tmp/log/crontab.log
DATEVAR=`date +20\%y\%m\%d_\%H\%M\%S`
* * * * * echo $DATEVAR >> /tmp/log/crontab.log
*/2 * * * * echo "$DATEVAR hello" >> ${CRONLOG}
*/1 * * * * echo 'every minute' >> ${CRONLOG}
Run Code Online (Sandbox Code Playgroud)
这只是按原样输出文本......
我想在 crontab.log 中创建一个日志条目,每次更新都带有时间戳
我如何在 CentOS 6 上执行此操作?
更新
DATEVAR=date +20%y%m%d_%H%M%S
*/1 * * * * /bin/echo [CRON] $($(DATEVAR)) >> /tmp/log/crontab.log
Run Code Online (Sandbox Code Playgroud)
当我尝试时只呈现 [CRON] 而没有呈现 =/