Run a command at a specific time

隐身守侯 提交于 2019-12-02 17:36:23

You could try this:

at 1843 <<_EOF_
php /run/this/script.php
_EOF_

edit if what you want to do is run Firefox, try this:

at 1843 <<_EOF_
DISPLAY=:0.0 /usr/bin/firefox
_EOF_

You can echo your command into at as input:

echo "/usr/bin/php /run/this/script.php" | at 18:43

In bash or zsh you can say

at 1843 <<< 'php /run/this/script.php'

Failing that, you need to use a here document:

at 1843 <<EOF
php /run/this/script.php
EOF

You might also want to look into cron for regularly scheduled jobs; the crontab entry would look like

43 18 * * * php /run/this/script.php

(EDIT: whoops, helps to recall which version of at. I think that may have been a local mod.)

echo "php /run/this/script.php" | at 18:43

The at command is not installed by default to the systems I work (Ubuntu, RHEL) and I don't have permissions to install new software, so I use scripts that combine bash and awk in order to achieve the at functionality as follows:

#! /bin/bash

res=""
while [ ! $res ]; do

    res=$( date | awk -v hour=$1 -v min=$2 '{ 

        split($4, tmp, ":" );

        if( (tmp[1] == hour) && (tmp[2] == min) )
        {
            print "ok";   
        }
        else
        {
            print "";
        }

    }' )

done

./atReplacement.sh $HOUR $MIN; [OTHER_COMMANDS]

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!