Воскресенье
20.09.2020
07:03


Форма входа


Приветствую Вас Гость | RSS
Статьи по ORACLE, PL/SQL, Java и немного по SHELL (BASH),...
Главная Каталог статей Регистрация Вход
Главная » Статьи » Shell (Bash) » Shell (Bash)

Поиск и архивирование логов с переносом на ftp

 Необходимо найти логи, произвести их архивацию и перенести архив(ы) на ftp сервер.

 

Имеем два файла

find_rf.sh – shell скрипт

и 
way.txt – содержит:
/home/nau/adump,PROD/oracle/adamp,prod_oracle_adamp_trc_
/home/nau/bdump,PROD/oracle/bdamp,prod_oracle_bdamp_trc_
/home/nau/cdump,PROD/oracle/cdamp,prod_oracle_cdamp_trc_
/home/nau/ddump,PROD/oracle/ddamp,prod_oracle_ddamp_trc_
 
, где

1) путь откуда будем забирать файлы (/home/nau/adump)

2) путь на ftp куда будем складывать файлы (PROD/oracle/adamp)

3) имя файла архива (prod_oracle_adamp_trc_)
 
 

 

Описание работы find_rf.shshell скрипт

 

#Стандартный разделитель ($IFS),

SEVEDIFS=$IFS  #сохраняем стандартный разделитель в отдельную переменную

IFS=, #меняем стандартный на свой

#WHENCE - путь откуда будем забирать файлы

#WHERE  - путь на ftp куда будем складывать файлы

#NAME   - имя файла архива

#read WHENCE WHERE NAME читаем построчно содержимое файла way.txt в переменные

while read WHENCE WHERE NAME

do

#find <директория для поиска> <маска поиска файлов> <ищем только файлы> <файлы были созданы/редактированы n дней назад>

#tar <создать архив> --files-from=- получить их имена

#--remove-files  удаление файлов после их архивирования

#`date +%d-%m-%Y` добавляем к имени файла текущие год месяц и число (19-06-2009)

#сжимаем с помощью bzip2, log.tar в имени обязательно

 

            find $WHENCE -name *.trc -type f -mtime -10 | tar c --files-from=- --remove-files | bzip2 > $WHENCE/$NAME`date +%d-%m-%Y`.log.tar.bz2

 

#заносим в переменные адрес ftp, логин и пароль

            HOST='<адрес>'

            USER='<логин>'

            PASSWD='<пароль>'

 

#далее идет соединение с ftp сервером

ftp -n  $HOST <<EOF

            user $USER $PASSWD

 

#cd переход в директорию на ftp

            cd $WHERE

 

#lcd переход в директорию на локальной машине

            lcd $WHENCE

 

#переносим файлы на ftp

            put $NAME`date +%d-%m-%Y`.log.tar.bz2

 

            quit

           

EOF

 

 

#rm стереть созданный архив файл

rm -f  $WHENCE/$NAME`date +%d-%m-%Y`.log.tar.bz2

 

#done < /home/nau/xcron/way.txt бегаем по этому файлу построчно, необходимо указать полный путь к файлу

done < /home/nau/xcron/way.txt

 

#возвращаем стандартный разделитель

IFS=$SEVEDIFS

 

exit 0

Категория: Shell (Bash) | Добавил: Akarak (24.06.2009)
Просмотров: 3237 | Рейтинг: 5.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *:
Меню сайта

Категории раздела
Shell (Bash) [6]
shell скрипты

Интересные сайты
  • sql.ru
  • all-oracle.ru
  • oranet.ru
  • oracloid.ru
  • forum.vingrad.ru

  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Поиск

    Copyright MyCorp © 2020
    Используются технологии uCoz