Showing posts with label Useful Linux Commands. Show all posts
Showing posts with label Useful Linux Commands. Show all posts

Thursday, 28 February 2013

Linux For DBA

Useful Linux command




1) Find and Replace (Replace askapache with htaccess)
nice -n19 sh -c 'S=askapache && R=htaccess; find . -type f|xargs -P5 -iFF grep -l -m1 "$S" FF|xargs -P5 -iFF sed -i -e s%${S}%${R}% FF'


2) Disk Use in current Location
du -a --max-depth=1 | sort -n | cut -d/ -f2 | sed '$d' | while read i; do if [ -f $i ]; then du -h "$i"; else echo "$(du -h --max-depth=0 "$i")/"; fi; done


3) Do a search-and-replace in a file after making a backup
for file in <filename>; do cp $file{,.bak} && sed 's/old/new/g' $file.bak > $file; done


4) Delete all but the latest 5 files
ls -t | awk 'NR>5 {system("rm \"" $0 "\"")}'

5) Identify long lines in a file
awk 'length>72' file

6) Show directories in the PATH, one per line
echo src::${PATH} | awk 'BEGIN{pwd=ENVIRON["PWD"];RS=":";FS="\n"}!$1{$1=pwd}$1!~/^\//{$1=pwd"/"$1}{print $1}'

7) Internet access at Current Moment
lsof -P -i -n
netstat -lantp | grep -i stab | awk -F/ '{print $2}' | sort | uniq


watch --interval 0 'iptables -nvL | grep -v "0 0"'

8) Client Ip Enquiry
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

9) Remove Garbage
echo "http%3A%2F%2Fwww.google.com" | sed -e's/%\([0-9A-F][0-9A-F]\)/\\\\\x\1/g' | xargs echo -e

10) Send Mail with attachment
tar cvzf - data1 data2 | uuencode data.tar.gz | mail -s 'data'

11) Email HTML content
mailx bar@foo.com -s "HTML Hello" -a "Content-Type: text/html" < body.htm

12) Send email with one or more binary attachments
echo "Body goes here" | mutt -s "A subject" -a /path/to/file.tar.gz recipient@example.com


du -h -s -x * | sort -g -b -r | less -F

13) Archive every file in /var/logs
find /var/logs -name * | xargs tar -jcpf logs_`date +%Y-%m-%e`.tar.bz2

14) Search for all files that begin with . and delete them.
find ~/Desktop/ \( -regex '.*/\..*' \) -print -exec rm -Rf {} \;

15) Copy all documents PDF in disk for your home directory
for i in `find / -name *.pdf`; do cp -v $i $HOME; done

16) simulates the DOS tree command that you might be missing on your Mac or Linux box
find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'

find . -name "*.sql" -print0 | wc -l --files0-from=-

17) Find file changed in last 7 days. Use +7 files modified before 7 days
find / -type f -mtime -7 | xargs tar -rf weekly_incremental.tar
gzip weekly_incremental.tar

18) Date function

date -d '1 day ago'; date -d '11 hour ago'; date -d '2 hour ago - 3 minute'; date -d '16 hour'

date +%s

date +%Y-%m-%d