Execute a command at a given time

echo "ls -l" | at midnight
This is an alternative to cron which allows a one-off task to be scheduled for a certain time.

By: root
2009-01-25 21:07:42

2 Alternatives + Submit Alt

What Others Think

Good work - this is exactly what I've been looking for.
bazza · 660 weeks and 3 days ago
Unfortunatly, nothing will be printed to the screen... you have to redirect the output to the current tty in order to see something : echo "ls -l" >$(tty)| at midnight it's only for the output of course
mrttlemonde · 654 weeks and 4 days ago
Bravura! bravura! bravura!
Sonny · 654 weeks and 1 day ago
mrttlemonde, your command is not exactly right with the quotes, i.e. it should be something like: echo "ls -l >/dev/pts/3" |at 23:59 or we could also direct to a file: echo "ls -lah >/foo/bar/ls.txt" |at 07:00
Buzzcp · 648 weeks and 4 days ago
Thats Cool!!
gandulo · 645 weeks and 2 days ago
echo overload! :-)
mpb · 639 weeks and 4 days ago
less-than less-than less-than "ls -l" at midnight (where "less-than less-than less-than" is three less than symbols (these get "eaten" by commandlinefu text entry )
mpb · 639 weeks and 4 days ago
Is there any way to make it work with, say... mplayer ? :)
sitaktif · 638 weeks and 1 day ago
This is cool...
bakhru · 615 weeks and 1 day ago
Be aware that the "at" command has a very important restriction. From the man page: "At and batch as presently implemented are not suitable when users are competing for resources." In other words, if your system is under a heavy load when the time comes to execute your "at" command, then your task might not run at all. Some might see this as a feature, since it cuts down on time-release tasks when the system load is high, but in my case it caused an important set of overnight tests to mysteriously stop running. These days I use cron, which is less sensitive to system loads. I've also read good things about nqs (indeed, the "at" man page suggests it as an alternative), but haven't tried it.
willdye · 607 weeks and 2 days ago
I think I may have solved this problem. And I'm wondering what really is the utility of "at" (or even cron). Sleep is enough. Why loop when we can just sleep up to the time to execute? An "at" type script that runs once every 24hr - i.e. "sleep 86400; script.sh" - could parse a list of jobs and schedule, again using "at" style scripts, the ones on the list that matched the present year, day and month. I must be missing something.
argv · 577 weeks and 6 days ago
OK, time to spread the joy of crond! You don't necessarily have to redirect stdout to a tty or logfile. In most crond implementations, the output of the commands in your crontab are mailed to your user by default. Also @argv, the "at-type script" you are describing is basically the cron daemon. Where cron tables really excel over a simple script, though, is in their ability to describe specific and hard-to-express times, like running a task once every third day of the month at 4AM but only if it's Tuesday - which is a rather absurd example but hopefully I'm getting the point across. If you ever wanted to do that for some reason, it's very simple: echo '0 4 */3 2 /root/scripts/task.sh' | crontab This will cause the system to execute the contents of "task.sh" with the sh shell (unless otherwise specified in the ENV or a shebang line) as your user, at whichever times and dates my ridiculous pattern applies to. :D Anyway, cron tables are very powerful and once you get to know the ins and outs you'll realize there are few scheduling-related things you can't do with them. There's also special keywords and stuff, but think I've rambled enough for one day. :)
whisper · 345 weeks and 6 days ago
that is so good,,,,
xscorpion · 297 weeks and 6 days ago
doula san diego Thank goodness I found this page!
yeoyeo · 44 weeks and 6 days ago
cant get over this. will recommend this to my friends. painters redding ca
looneyhans · 31 weeks and 1 day ago
Wow, this is really interesting reading. I am glad I found this and got to read it. Great job on this content. I like it. Onewheel Accessories
KayGasaway · 26 weeks ago
I think this is one of the most significant information for me. And i’m glad reading your article. But should remark on some general things, http://www.ottawatiredistributors.ca">All Season Tires Ottawa
KayGasaway · 25 weeks ago
If you don"t mind proceed with this extraordinary work and I anticipate a greater amount of your magnificent blog entries. Onewheel Pint Accessories
KayGasaway · 24 weeks and 5 days ago
Intriguing post. I Have Been pondering about this issue, so much obliged for posting. Really cool post.It "s truly extremely pleasant and Useful post.Thanks Computer Support and Services near me Century City Los Angeles
KayGasaway · 24 weeks and 2 days ago
Personally, I have found that to remain probably the most fascinating topics when it draws a parallel to. You may find two to three new levels inside L . a . Weight loss and any one someone is incredibly important. Initial stage may be real melting away rrn the body. lose weight eye doctor Tulsa
KayGasaway · 19 weeks and 1 day ago
Great job for publishing such a beneficial web site. Your web log isn’t only useful but it is additionally really creative too. There tend to be not many people who can certainly write not so simple posts that artistically. Continue the nice writing Supreme Saunas
KayGasaway · 18 weeks and 4 days ago
You have made some decent points there. I looked on the internet for more information about the issue and found most people will go along with your views on this web site. ?????????????
KayGasaway · 12 weeks and 3 days ago

What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Share Your Commands

Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.

» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10

Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for: