The UNIX and Linux Forums  


Go Back   В UNIX и Linux Форумы > Топ форумы > Shell программирование и сценарии
.
Google unix.com



Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
рекурсивный Chmod что влияет только каталоги? retrovertigo UNIX перспективных И опытных пользователей 1 06-22-2007 05:02 PM
Рекурсивное PID сценария jbarnhar Shell программирование и сценарии 3 05-02-2007 04:14 PM
Проблема с Рекурсивные функции Malle Shell программирование и сценарии 4 02-03-2007 10:40 AM
каталоги проблемы yeah016 UNIX для чайников Вопросы И Ответы 2 07-22-2006 08:48 AM
grep рекурсивный каталоги jagannatha UNIX для чайников Вопросы И Ответы 8 07-24-2003 05:00 PM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 04-27-2008
robertmcol robertmcol is offline
Зарегистрированный пользователь
  
 

Регистрация: Февраль 2008
Сообщений: 6
Сценарий проблемы из-за рекурсивных каталогов Помощь пожалуйста

Привет всем, я ищу лучшее решение, то я создал в мою задачу

Задача:
Создать автоматизированный скрипт, который будет проверять для загрузки в указанном каталоге и переместить их на другой указанный каталог, если файл загружен полностью.

Файлы FTP'd в указанную директорию
Несколько FTPS может быть запущена так знаю, если частности FTP завершения сложно для меня, чтобы проверить на идентификатор процесса


Я создал скрипт, перечисленных ниже, но видим, что проблемы могут возникнуть с Закачки деревьев
Например
Если Загрузить каталог следующее:

Цитата:
# LS-лтр UPLOAD_DIR /
UPLOAD_DIR /:
Всего 4
drwxr-XR-х 4 корень корень 4096 Апр 26 21:32 Directory1
-RW-R - R - 1 корень корневой 0 26 апреля 21:31 file1.txt

UPLOAD_DIR/Directory1:
Всего 8
drwxr-XR-х 2 корень корень 4096 Апр 26 21:33 SubDir2
drwxr-XR-х 2 корень корень 4096 Апр 26 21:32 SubDir1
-RW-R - R - 1 корень корневой 0 26 апреля 21:32 dir1file1.txt

UPLOAD_DIR/Directory1/SubDir2:
Всего 0
-RW-R - R - 1 корень корневой 0 26 апреля 21:33 subdir2file2.txt
-RW-R - R - 1 корень корневой 0 26 апреля 21:33 subdir2file1.txt

UPLOAD_DIR/Directory1/SubDir1:
Всего 0
-RW-R - R - 1 корень корневой 0 26 апреля 21:32 subdir1file2.txt
-RW-R - R - 1 корень корневой 0 26 апреля 21:32 subdir1file1.txt
Я не уверен, но если последний изменил дату проведения стат команду на каталог старее, то возраст Я ищу
Затем shouldn; т, что означает
что любые файлы и другие каталоги ниже этого каталога будут полностью загружены, а также пожилым то возрасте я ищу?
...... Я надеюсь, что смысл ....
Я не думаю, что это дело, хотя ....

Я надеясь, есть лучший путь для решения этого вопроса.

Спасибо за то, что там.


Код:
#!/bin/bash
#
#
# This script will be used to monitor uploads to a specified directory
# and move them to another directory for downloading.
#
# Things to consider:
#       1. Was the uploaded files uploaded in a sub directory.
#       2. Are the files being uploaded complete.
#       3. Move the files to the specified directory
#          with the proper permissions.
#
#
#-------------------------------------------------------------------------------#
#
# Functions
#
#-------------------------------------------------------------------------------#
calc_time() {
        AGE_LAST_CHANGED=`expr ${CURRTIME} - ${FILE_LAST_CHANGED}`
        if [ ${AGE_LAST_CHANGED} -lt ${ACCEPTED_AGE} ];
        then
                OK_TO_MOVE=N
        else
                OK_TO_MOVE=Y
        fi
}
check_date() {
        FILE_LAST_CHANGED=`stat -t ${NEWFILE} |awk '{print $13}'`
}
#-------------------------------------------------------------------------------#
#
# Vairables will go here
#
#-------------------------------------------------------------------------------#
UPUSER=up_user
DOWNUSER=down_user
#
UPPATH=/home/Private/Uploads
DOWNPATH=/home/Private/Downloads

CURRTIME=`date +%s`
ACCEPTED_AGE=300        # 5 minutes of no activity according to date modified


for f in $( ls ${UPPATH} ); do

if [ -d ${UPPATH}/${f} ];
then
#--- Directory with Subfiles In it ---#
        DIR=${UPPATH}/${f}
        echo "${DIR} is a Directory"
        DIRDATE=`date +%Y_%m_%d_%H%M%S`
        NEWDIR=${DOWNPATH}/${f}_${DIRDATE}
        NEWFILE=${DIR}
        check_date
        calc_time
                # It appears that the directory has not been changed in the allowed timeframe (ACCEPTED_AGE)
                # it is ok to create a new directory in the DOWNPATH now.
                # set permissions of new directory to the download user
        mkdir ${NEWDIR}

        # This causes a problem by leaving the original Directory present in th UPLOADS directory.

        for f2 in $(ls  ${UPPATH}/$f ); do
                NEWFILE=${DIR}/${f2} # Set becuase of check_date function
                check_date
                calc_time
                if [ ${OK_TO_MOVE} = "Y" ];
                then
                        mv ${NEWFILE} ${NEWDIR}
                        echo "mv ${NEWFILE} ${NEWDIR} "
                else
                        echo "File date is too new to move better wait"
                fi

        chown -R ${DOWNUSER}:${DOWNUSER} ${NEWDIR}
        done

else
#--- File is in Main Upload directory ---#
        if [ -f ${UPPATH}/$f ]; then
                NEWFILE=${UPPATH}/${f}
                echo "${NEWFILE} is a file"
                check_date
                calc_time

                if [ ${OK_TO_MOVE} = "Y" ];
                then
                        mv ${NEWFILE} ${DOWNPATH}
                        echo "mv ${NEWFILE} ${DOWNPATH} "
                        chown ${DOWNUSER}:${DOWNUSER} ${DOWNPATH}/*
                else
                        echo "File date is too new to move better wait"
                        echo "next pass of cronjob should move this file"
                fi
        fi
fi

done

 

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 06:10 AM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0