bash - email command not working in UNIX Linux

07
2014-07
  • logan

    I tried with 2 email UNIX commands mail and mutt from my Red Hat Linux box. It's not sending any mails to the email id I specified.

    echo "My message" | mail -s subject "test email" <my valid emailid>
    
    echo "My message" | mutt -s subject "test email" <my valid emailid>
    

    Outputs: Nothing, it just shows a new shell prompt.

    Could anyone please let me know what could be the problem ?

    Linux Version:

    Linux version 2.6.18-348.4.1.el5 ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-54)) #1 SMP Fri Mar 22 05:41:51 EDT 2013

  • Answers
  • masegaloeh

    If you use default mail system in Redhat, then you likely use Sendmail. When you got nothing after the command, this is expected behavior. The error doesn't directly spit out after the command. Instead take look on /var/log/maillog. Maybe you get a clue in there.


  • Related Question

    shell - Why is the size of a directory always 4096 bytes in unix?
  • Lazer

    I am sure a directory file has much less information than 4096 bytes. I know the sector size is 4096 bytes. But normal files smaller than that do exist.

    Why does Unix reserve 4096 bytes for each folder?


  • Related Answers
  • harrymc

    It's the initial size necessary to store the meta-data about files contained in that directory (including names). The initial allocation equals the size of one sector, but can grow above that if necessary. Once allocated, space is not freed if files are removed, to reduce fragmentation.

    For example:

    $ mkdir testdir
    $ cd testdir
    $ ls -ld .
    drwxr-xr-x 2 matthew matthew 4096 2007-12-03 20:28 ./
    $ for ((i=0; i<1000; i++)); do touch some_longish_file_name_$i; done
    $ ls -ld .
    drwxr-xr-x 2 matthew matthew 36864 2007-12-03 20:29 ./
    $ rm some_longish_file_name_*
    $ ls -ld .
    drwxr-xr-x 2 matthew matthew 36864 2007-12-03 20:29 ./
    $ cd ..
    $ ls -ld testdir
    drwxr-xr-x 2 matthew matthew 36864 2007-12-03 20:29 testdir/
    $ rmdir testdir ; mkdir testdir
    $ ls -ld testdir
    drwxr-xr-x 2 matthew matthew 4096 2007-12-03 20:29 testdir/
    

    source

  • Pablo Santa Cruz

    Sometimes 4096 bytes is the smallest allocation unit for some filesystems. That's why directory has 4096.

    The same thing apply to files. Even though some files might report fewer than 4096, they are actually taking al least 4096 of storage from disk.

  • MDMarra

    4096 is reserved to reduce fragmentation, because often the actual size of the metadata contained will fluctuate based on the directory contents. If it is constantly growing and shrinking (say it contained log files or dynamic content) over time it could hurt performance. This likely wouldn't happen with one folder, but across the whole file system it would add up quickly.

  • Maciej Piechotka

    It depends on filesystem. On ext2/3/4 it "is" 4096. On reiserfs it can be 9608 (my $HOME) 1032 (/tmp) or 48 (some dir in /tmp).

    By default on ext2/3/4 block is 4096 - and file cannot take less than that. If file is smaller it takes a whole block anyway. As it is pointless to ask about logical size of directory and this information is probably not on disk anyway and it have to report something it reports a size of block times the number of blocks taken i.e. the physical space that have been taken.