crontab是否有一个参数来创建cron作业而不使用编辑器(crontab -e).如果是这样,那么代码会从Bash脚本创建一个cronjob?
我需要通过运行的脚本添加一个cron作业来设置服务器.我目前正在使用Ubuntu.我可以使用,crontab -e但会打开一个编辑器来编辑当前的crontab.我想以编程方式执行此操作.
有可能这样做吗?
我正在尝试在Ubuntu上的crontab中添加一行.
现在,我正在crontab -e那里编辑crontab.
但是,我似乎无法找到真正的crontab文件,因为crontab -e似乎给你一个临时的工作副本.
/etc/crontab 看起来像系统crontab.
crontab -e保存到的crontab的路径是什么?
谢谢!
将条目插入/ etc/crontab的首选方法是什么,除非它存在,最好使用单行?
这是我希望放入/ etc/crontab的示例条目,除非它已存在于那里.
*/1 * * * * some_user python /mount/share/script.py
Run Code Online (Sandbox Code Playgroud)
我在CentOS 6.6上,到目前为止,我有这个:
if grep "*/1 * * * * some_user python /mount/share/script.py" /etc/crontab; then echo "Entry already in crontab"; else echo "*/1 * * * * some_user python /mount/share/script.py" >> /etc/crontab; fi
Run Code Online (Sandbox Code Playgroud) 谁能在这里看到我的语法错误?尝试编辑/更新cron作业,但文件未更新.
crontab -l | sed 's%*/5 * * * * cd /home/administrator/anm-1.5.0 && ./anm.sh%*/10 * * * * cd /home/administrator/anm-1.5.0 && ./anm.sh%' | crontab -
Run Code Online (Sandbox Code Playgroud)
*更新*
所以我仍然遇到麻烦.最终我试图从配置文件$ FREQ(分钟)中提取一个值来运行该作业.该脚本将首先检查配置中的值是否与crontab中当前的值不同.如果值不同,它将使用新值更新crontab.crontab(初始安装和更新)还从变量中提取运行目录和脚本名称.例:
DIR=`pwd`
SCRIPT=`basename $0`
CRONTMP=`crontab -l | grep anm.sh`
crontab -l | sed 's%'$CTMP'%*/'$FREQ' * * * * cd '$DIR' && ./'$SCRIPT'%' | crontab -
Run Code Online (Sandbox Code Playgroud)
沿着那条线的东西.显然这是缺少一些东西,但这应该给你一般的想法.
谢谢您的帮助!
*更新*
好的,事情正在发生,但我仍然有一个小问题.我想我已经制定了大部分逻辑.这是脚本的完整(相关)部分,因此您可以准确地了解我要完成的任务.
请记住:$ SCRIPT和$ DIR是在函数外定义的,只等于脚本名称(例如anm.sh)和当前工作目录.我接受了你的建议并更新了我的所有代码.我现在使用SCRIPT = $(basename $ 0).谢谢
function CRON {
if [ "`crontab -l | grep $SCRIPT`" \> " " ]; then
CTMP=$(crontab -l …Run Code Online (Sandbox Code Playgroud) 是否可以通过编程方式设置 CRON 作业?使用带有php_curl扩展的 PHP?我有以下代码:
function wp_cron_control_call_cron( $blog_address ) {
$cron_url = $blog_address . '/wp-cron.php?doing_wp_cron';
$ch = curl_init( $cron_url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 0 );
curl_setopt( $ch, CURLOPT_TIMEOUT, '3' );
$result = curl_exec( $ch );
curl_close( $ch );
return $result;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法以编程方式按设定的时间间隔执行此操作?我不想在 cPanel 中手动设置 CRONTAB 或类似的内容。如果可能的话,我希望能够用实际代码来完成此操作。这可能吗?有没有一个设置curl_setopt可以做到这一点?或者其他方式?如果重要的话,请使用 PHP 5.4.16。
我们知道该crontab命令用于 Linux 中的计划任务。
我想写一个 Python 脚本。它的作用是接收一些数据(这些数据与crontab设置有关)并执行'crontab'命令以重置用户的crontab文件的内容。
我知道如何在 Python 中执行外部 Linux 命令。但是当你执行crontab命令(例如crontab -u xxx -e)时,你需要与一个编辑器交互来修改用户的 crontab 文件。(假设我不知道文件在哪里。对于新用户,crontab无论如何都会生成一个新文件。而且我不以root用户身份执行命令)。
所以问题是,我如何才能crontab在 Python 中执行?有什么方法可以避免与编辑器交互以在 Python 中修改用户的 crontab 文件?
我的操作系统是 ubuntu 14.01。