The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Массивы в BASH"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Массивы в BASH"  +/
Сообщение от scrooge (ok) on 29-Янв-10, 15:12 
Важно! флудить здесь не надо!!! Программированием занимался еще в институте, чтобы решить данную задачу нужно потратить несколько дней на книжки, а решение требуется уже вчера.

Итак, нужно периодически просматривать пути на предмет наличия там файлов в определенной папке (IMP_FOLDER) и, в случае их присутствия, забэкапить их и отправить архив по назначению. После чего текущую папку требуется очистить.

Навоял следующее:

#!/usr/local/bin/bash

TODAY=`date "+%Y-%m-%d"`
BASEDIR=/tmp
logfile=empty.log
var[0]=/mnt/pathtores2/res02
var[1]=/mnt/pathtores3/res03
var[2]=/mnt/pathtoAB/AB
...
var[430]=/mnt/pathtoother/other

ftpuser=blablabla
ftppass=blablabla
remote=blablabla

/bin/mkdir -p $BASEDIR/$TODAY;
echo "##### Result by $TODAY" >> $BASEDIR/$logfile

for PREF in ${var[@]}; do
cd $PREF
if [ "$(ls -A IMP_FOLDER)" ]
    then
    /usr/local/bin/zip -r $BASEDIR/$TODAY/$RANDOM.zip $PREF/IMP_FOLDER;
    /usr/local/bin/lftp -c "o $ftpuser:$ftppass@$remote && mirror -R $BASEDIR/$TODAY";
    rm -rf IMP_FOLDER/*
    else
    echo "Folder "IMP_FOLDER" in $PREF is empty! \
         Nothing to do." >> $BASEDIR/$logfile
fi
done

rm -rf $BASEDIR/$TODAY

Затык с именем архива... Пока я его делаю с рандомным именем, а нужно, чтобы имя архива совподало с именем последней папки в пути (т.е. res02, res03, AB и т.д.)

HELLp, pls!

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

  • Массивы в BASH, Andrey Mitrofanov, 15:39 , 29-Янв-10, (1)  

Сообщения по теме [Сортировка по времени | RSS]


1. "Массивы в BASH"  +/
Сообщение от Andrey Mitrofanov on 29-Янв-10, 15:39 
>Важно! флудить здесь не надо!!!

И эти люди запрещают мне ковырять в носу! :-P


>var[0]=/mnt/pathtores2/res02
>var[430]=/mnt/pathtoother/other
>for PREF in ${var[@]}; do
>    /usr/local/bin/zip -r $BASEDIR/$TODAY/$RANDOM.zip $PREF/IMP_FOLDER;
>Затык с именем архива... Пока я его делаю с рандомным именем, а
>нужно, чтобы имя архива совподало с именем последней папки в пути
>(т.е. res02, res03, AB и т.д.)

/usr/local/bin/zip -r $BASEDIR/$TODAY/${PREF##*/}.zip $PREF/IMP_FOLDER;

>HELLp, pls!

В кассу! Следующий...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Массивы в BASH"  +/
Сообщение от scrooge (ok) on 29-Янв-10, 15:47 
Андрей, премного благодарен!!!

>[оверквотинг удален]
>>    /usr/local/bin/zip -r $BASEDIR/$TODAY/$RANDOM.zip $PREF/IMP_FOLDER;
>>Затык с именем архива... Пока я его делаю с рандомным именем, а
>>нужно, чтобы имя архива совподало с именем последней папки в пути
>>(т.е. res02, res03, AB и т.д.)
>
>/usr/local/bin/zip -r $BASEDIR/$TODAY/${PREF##*/}.zip $PREF/IMP_FOLDER;
>
>>HELLp, pls!
>
>В кассу! Следующий...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру