Thoth19
Thoth19

Reputation: 105

Repeating Bash Task using At

I am running ubuntu 13.10 and want to write a bash script that will execute a given task at non-pre-determined time intervals. My understanding of this is that cronjobs require me to know when the task will be performed again. Thus, I was recommended to use "at."

I'm having a bit of trouble using "at." Based on some experimentation, I've found that

echo "hello" | at now + 1 minutes 

will run in my terminal (with and without quotes). Running "atq" results in my computer telling me that the command is in the queue. However, I never see the results of the command. I assume that I'm doing something wrong, but the manpages don't seem to be telling me anything useful.

Thanks in advance for any help.

Upvotes: 0

Views: 46

Answers (1)

konsolebox
konsolebox

Reputation: 75568

Besides the fact that commands are run without a terminal (output and input is probably redirected to /dev/null), your command would also not run since what you're passing to at is not echo hello but just hello. Unless hello is really an existing command, it won't run. What you want probably is:

echo "echo hello" | at now + 1 minutes 

If you want to know if your command is really running, try redirecting the output to a file:

echo "echo hello > /var/tmp/hello.out" | at now + 1 minutes

Check the file later.

Upvotes: 1

Related Questions