Страница 1 из 1

Автоматическое перемещения файлов из одной папки в другую

Добавлено: 2011-07-29 14:52:56
Alexander38
есть ли такая возможность при появлении файлов, предположим в указанной папке "временные", автоматически перемещались в папку "готовые"?

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-07-29 14:55:38
bagas
хмм , а если через крон сделать?
что бы скрипт каждую минуту проверял диреткорию.
вот вам к примеру косочек из моего скрипта, этот кусок проверяет пустая ли дерктория

Код: Выделить всё

#!/bin/sh
dir="/mnt/share/ЗП/"
if [[ -d "$dir" && "$(ls -A $dir)"  ]]
then

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-07-29 15:02:11
Alexander38
спасибо, сейчас попробую разобраться

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-07-29 16:32:38
schizoid
переименовать папку "временные" в папку "готовые" ;)

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-07-31 9:01:12
Alexander38
в том то и дело что мне нужно что бы были 2 папки, и как только появлялись файлы в одной моментально перекидывались в другую..
сижу читаю документации по крону) надеюсь что смогу разобраться, хотя глядя на пример у bagas`а похоже что там можно использовать язык программирования паскаль?!

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-07-31 11:06:35
bagas
Сие чудо вы можете сделать на любом языке программирования, оператором if или циклом for сделать выборку.
у меня шел скрипт.
в кроне сделайте такую запись

Код: Выделить всё

/etc/crontab
*/1 * * * * root sh путь до вашего скрипты
правило в кроне будет срабатывать каждую минуту.

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-08-01 11:13:21
Alexander38
bagas писал(а):хмм , а если через крон сделать?
что бы скрипт каждую минуту проверял диреткорию.
вот вам к примеру косочек из моего скрипта, этот кусок проверяет пустая ли дерктория

Код: Выделить всё

#!/bin/sh
dir="/mnt/share/ЗП/"
if [[ -d "$dir" && "$(ls -A $dir)"  ]]
then
вот таким образом проктит как думаете?

Код: Выделить всё

#!/bin/sh
dir="/mnt/share/ЗП/"
dir2="/mnt/share/ЗП2/"
if [[ -d "$dir" ]]
then cp [[ -d "$dir" in "$dir2" ]]
else "not file`s"

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-08-01 14:18:07
schizoid
он у вас ручками то работает?
что-то на вскидку полно ошибок

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-08-01 15:06:32
bagas
нет у вас он не будет работать!
во первых нужно закрыть оператор if
во вторых если он у вас по крону запускается то else "not file`s" не нужно.
в место then cp [[ -d "$dir" in "$dir2" ]] этого
then
/bin/cp -v $dir $dir2 сделайте это.

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-08-01 19:27:55
xelplogoog
а нужны именно копии/дубли? может ln -s хватит?

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-08-02 8:43:07
Alexander38
по сути копии не нужны, а ln -s это перемещение файлов?

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-08-02 8:49:39
Гость
нет. это мягкая ссылка
например, есть у тебя директория 1
если создать на нее ссылку ln -s 1 2
и кинуть фал в папку 1
то он тут же появится в папке 2
но физически будет находиться только в папке 1, и, если будет оттуда удален, пропадет и из папки 2

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-08-02 8:58:07
bagas
Alexander38 Я думаю , что вам надо почитать про команды в *nix.
Хотя бы азы понять.

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-08-02 9:10:21
Alexander38
о как, этот вариант тоже прокатит. выходит так? :

Код: Выделить всё

#!/bin/sh
dir="/mnt/share/ЗП/"
dir2="/mnt/share/ЗП2/"
if [[ -d "$dir" ]]
then ln -s $dir $dir2

во первых нужно закрыть оператор if
как именно его закрыть надо? точка с запятой в конце?
уже читаю про них:)

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-08-02 9:13:41
bagas

Код: Выделить всё

#!/bin/sh
SOR="/mnt/do_obmen/ПАВЛОВСК/В ПАВЛОВСК/"
DIS="/mnt/do_obmen/ПАВЛОВСК/В ПАВЛОВСК/ПРОЧИТАНЫЕ/"
FINDS=`ls "/mnt/do_obmen/ПАВЛОВСК/В ПАВЛОВСК/"*.* | grep -v '/$' | grep -v '.db'`
DT=`date +"%d-%m-%Y"`
#
     for i in "$FINDS";
do
#
     if [ -x "$i" ]; then
     mkdir -p "$DIS/$DT"
fi
#
     mv "$i" "$DIS$DT"
done
exit 1
вот тенбе готовый скрипт, который переносит данные из одной директории в другую..
Ln - это жесткая ссылка, к примеру создаем ссылку на файл «файл1», которая будет выглядеть как «файл2»

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-08-02 9:32:47
Alexander38
объясни пожалуйста для чего ты прописал строку SOR если она у тебя нигде не используется
и команды | grep -v '/$' | grep -v '.db'` задают зарширение фалов да? если /$ имеет в виду все файлы почему для .db отдельно еще раз надо прописывать?

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-08-02 9:41:00
bagas
.db это фаел он мне ненужен...изо этого и исключение ему сделал.
переменную сор не помню для чего прописывал...$sor, скорее всего с начало выглядел скрипт так
FINDS=`ls "$SOR"*.* | grep -v '/$' | grep -v '.db'` и что то не сраслось, и пришлось путь полностью прописывать.

Re: Автоматическое перемещения файлов из одной папки в другу

Добавлено: 2011-08-02 9:43:15
Alexander38
ок, спасип большое!