Link to home
Start Free TrialLog in
Avatar of penguins_rule
penguins_ruleFlag for United States of America

asked on

suppress mail sent by batch or at command in linux

i have several batch or at jobs being scheduled every 3 minutes. Is it possible to suppress the mail being sent to the user who initially starts the job? I don't need to know anything about the job.

The user issues command:
  batch_the_command now + 3 minutes
Avatar of BigDeer
BigDeer

You should be able to add a  >/dev/null 2>&1 to the end of the command to prevent it from sending an email
Avatar of penguins_rule

ASKER

it still created the mail
it did not show the job-id of the original command
if this is a crontab job you have to edit the job in the crontab via crontab -e. Otherwise, I'm not sure how this job runs or is scripted. It may be hard coded into the script.
$ cat batch_the_command
#!/bin/bash
echo "This is the list of things to do for minute"

The command and response:
$ at -f /home/penguin/batch_the_command now
job 2174 at 2014-08-11 16:46

You have new mail
$ mail
& t
Message  1:
From penguin@localhost  Mon Aug 11 16:46:12 2014
Return-Path: <penguin@localhost>
X-Original-To: penguin
Delivered-To: penguin@localhost
Subject: Output from your job     2174
To: penguin@localhost
Date: Mon, 11 Aug 2014 16:46:12 -0400 (EDT)
From: penguin@localhost (penguins_rule)
Status: R

This is the list of things to do for minute

Open in new window

How would I set it up in cron to run every three minutes and no email?
ASKER CERTIFIED SOLUTION
Avatar of Gerwin Jansen
Gerwin Jansen
Flag of Netherlands image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Some more details about at:

gerwin@ubuntu:~$ at -?
at: invalid option -- '?'
Usage: at [-V] [-q x] [-f file] [-mMlbv] timespec ...
       at [-V] [-q x] [-f file] [-mMlbv] -t time
       at -c job ...
       atq [-V] [-q x]
       at [ -rd ] job ...
       atrm [-V] job ...
       batch

Note the -M option

From man at:

       If a job is submitted to a queue designated with an  uppercase  letter,
       the  job is treated as if it were submitted to batch at the time of the
       job.  Once the time is reached, the batch processing rules with respect
       to  load average apply.  If atq is given a specific queue, it will only
       show jobs pending in that queue.

       -m      Send mail to the user when the job has completed even if  there
               was no output.

       -M      Never send mail to the user.

       -f file Reads the job from file rather than standard input.

       -t time run the job at time, given in the format [[CC]YY]MMDDhhmm[.ss]
thank you for the man page on at command. I did not realize RedHat Linux and ubuntu had different switches. The -M switch did not show on my man page, but it still works.