nohup bash -c "while true; do ps -x | mail pascalv@mmmmail.com; sleep 3600; done" | mail pascalv@mmmmail.com &

Periodically run a command without hangups, and send the output to your e-mail

Run "ps -x" (process status) in the background every hour (in this example). The outputs of both "nohup" and "ps -x" are sent to the e-mail (instead of nohup.out and stdout and stderr). If you like it, replace "ps -x" by the command of your choice, replace 3600 (1 hour) by the period of your choice. You can run the command in the loop any time by killing the sleep process. For example ps -x 2925 ? S 0:00.00 sh -c unzip E.zip >/dev/null 2>&1 11288 ? O 0:00.00 unzip E.zip 25428 ? I 0:00.00 sleep 3600 14346 pts/42- I 0:00.01 bash -c while true; do ps -x | mail pascalv; sleep 3600; done 643 pts/66 Ss 0:00.03 -bash 14124 pts/66 O+ 0:00.00 ps -x kill 25428 You have mail in /mail/pascalv
Sample Output
  PID TTY    STAT    TIME COMMAND
  320 pts/2  O+   0:00.00 mail pascalv

1
By: pascalv
2013-08-19 17:21:37

These Might Interest You

  • It is the best way i found to send a mail from the console in my centos server.


    5
    true | mailx -n -a MYTEXT.txt -r my@mail.com -s log -S smtp=mail.com -S smtp-auth-user=MYUSER -S smtp-auth-password=MYPASSWORD FRIEND@mail.com
    xmuda · 2013-03-12 16:37:30 0
  • Checks if a web page has changed. Put it into cron to check periodically. Change http://www.page.de/test.html and mail@mail.de for your needs.


    3
    HTMLTEXT=$( curl -s http://www.page.de/test.html > /tmp/new.html ; diff /tmp/new.html /tmp/old.html ); if [ "x$HTMLTEXT" != x ] ; then echo $HTMLTEXT | mail -s "Page has changed." mail@mail.de ; fi ; mv /tmp/new.html /tmp/old.html
    Emzy · 2010-07-04 21:45:37 1
  • puts command in background and sends its output to nohup.out file it will not die if you log out fromyour shell session ;-)


    7
    nohup <command> &
    gnawa · 2009-02-19 14:45:04 10
  • It's very common to have cron jobs that send emails as their output, but the From: address is whatever account the cron job is running under, which is often not the address you want replies to go to. Here's a way to change the From: address right on the command line. What's happening here is that the "--" separates the options to the mail client from options for the sendmail backend. So the -f and -F get passed through to sendmail and interpreted there. This works on even on a system where postfix is the active mailer - looks like postfix supports the same options. I think it's possible to customize the From: address using mutt as a command line mailer also, but most servers don't have mutt preinstalled.


    9
    mail -s "subject" user@todomain.com <emailbody.txt -- -f customfrom@fromdomain.com -F 'From Display Name'
    dmmst19 · 2010-01-18 19:55:27 1
  • You can use this to loop any command to periodically see the output. while true; do [YOUR COMMAND HERE]; sleep [# of seconds]; done; Alternatively, you can put it in a simple shell script to save typing! #/!bin/bash while true; do $1; sleep $2; done; /path/to/script.sh "ifconfig eth0 | grep 'inet addr:'" 60 Show Sample Output


    -5
    while true; do ifconfig eth0 | grep "inet addr:"; sleep 60; done;
    bandit36 · 2009-04-01 19:29:28 8
  • This command uses mutt to send the mail. You must pipe in a body, otherwise mutt will prompt you for some stuff. If you don't have mutt, it should be dead easy to install.


    9
    echo "Body goes here" | mutt -s "A subject" -a /path/to/file.tar.gz recipient@example.com
    ketil · 2009-08-05 23:06:25 2

What Others Think

the "cron" (deamon) program was written for running periodic commands. It is very easy to use, recommend reading the manual page for the user command "crontab": man crontab
mpb · 248 weeks and 2 days ago
True, however not all shell providers allow cron jobs. Some allow nohup and one or two background processes, without allowing cron jobs.
pascalv · 248 weeks and 2 days ago
Sure, it's easy to use cron, it's even easier to do with nohup/sleep. cron's a different tool, not intrinsically a better one, unless you have a reason why the command *shouldn't* be used, I see no reason to vote it down.
MadCasual · 248 weeks and 1 day ago
@MadCasual Thanks, appreciate some of us find some utility in this command...
pascalv · 248 weeks and 1 day ago
Great, what I was looking for
pascalv · 245 weeks and 4 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: