Bash

Примеры как скриптов, так и комманд
 

Копирования файлов через ssh используя tar

tar -cf - /path/files-to-copy | ssh host.name tar -xf - -C /destination
и с компресией
tar -czf - /path/files-to-copy | ssh host.name tar -xzf - -C /destination
или оставляем архив
tar -czf - /path/files-to-copy | ssh host.name "cat > /path/data.tgz" 

Сравнение файлов в директории

diff -r --brief dir1 dir2

Вывод даты за 5 дней до сегодняшнего дня

$ date
Втр Ноя 15 08:52:26 GMT 2011
$ date --date="-5 day"
Чтв Ноя 10 08:52:29 GMT 2011
$ date +%Y%m%d
20111115
$ date +%Y%m%d --date="-5 day"
20111110

Запускаем ntpdate и проверяем запущен ли dovecot(если лежит – запускаем) с записью вывода в syslog

#!/bin/bash
#
/sbin/ntpdate -s raptor.ttk.net cricket.ttk.net

if [ -f /var/run/dovecot/master.pid ] ; then
    logger "$0: dovecot (pid  `cat /var/run/dovecot/master.pid`) is running..."
    exit 0
else
    logger "$0: dovecot is stopped"
    /etc/init.d/dovecot start
fi

 

Меняем во всех файлах начинающихся с буквы ‘t’, строку в которой содержится ZQ(таб)zq на (таб)(таб)RQ(таб)rq

#!/bin/bash
for i in `find . -name 't*'`;
do
    sed -e '/ZQ\tzq/c\\t\tRQ\trq.' $i > tmp/$i;
done

 

делаем дамп удаленной базы и сразу кидаем ее в нашу

mysqldump --opt -h '10.77.136.100' -u root -p IPNOC_NG | mysql -p IPNOC_NG
или
mysqldump --opt -h '10.77.136.100' -u root --password='password' IPNOC_NG | mysql -p IPNOC_NG

 

ищем файлы и показываем их в том порядке в котором надо

find /data/ -name *.log | while read lines; do ls -lah $lines; done