A mega geeky awk one-liner today. Tested on Solaris under bash, so YMMV.
Have you ever found that a filesystem is filling up fast, and dont know what is causing it? This one liner (which can be placed in a cron job if you like) is best run as a super user.
It will:
- Search for all files in the current dir and subdirs that are modified in the last 3 days;
- list them, filtering just the filesize and name/path;
- sort/order by the largest file; and
- Email you a copy of the report.
find / -type f -mtime -3 -exec ls -l {} \; 2>/dev/null \
| awk '{print $5 " " $9}' \
| awk '{printf "%12d\t%s\n", $1, substr($0,index($0,$2),80)}' \
| sort -r >/tmp/largefiles.txt && \
( uuencode /tmp/largefiles.txt largefiles.txt ) \
| mailx -s 'Large Files Report' -r mail2@youremail.com `cat /tmp/mailrecipients` &
Nice. If you just want to see the response on stdout then try this:
find / -type f -mtime -3 -exec ls -l {} \; 2>/dev/null \
| awk '{print $5 " " $9}' \
| awk '{printf "%12d\t%s\n", $1, substr($0,index($0,$2),80)}' \
| sort -r
Have fun.
Alphin Johnson said,
March 25, 2009 @ 18:04
Nice
lantrix said,
March 26, 2009 @ 10:48
Thanks. Hey long time no speak. We should catch up!
RSS feed for comments on this post · TrackBack URI