The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Массивы в BASH, !*! scrooge, 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!

  • Массивы в BASH, !*! Andrey Mitrofanov, 15:39 , 29-Янв-10 (1)
    >Важно! флудить здесь не надо!!!

    И эти люди запрещают мне ковырять в носу! :-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!

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

    • Массивы в BASH, !*! scrooge, 15:47 , 29-Янв-10 (2)
      Андрей, премного благодарен!!!

      >[оверквотинг удален]
      >>    /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!
      >
      >В кассу! Следующий...




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

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