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

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Alexander38
ефрейтор
Сообщения: 55
Зарегистрирован: 2011-05-13 15:26:25

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

Непрочитанное сообщение Alexander38 » 2011-07-29 14:52:56

есть ли такая возможность при появлении файлов, предположим в указанной папке "временные", автоматически перемещались в папку "готовые"?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

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

Непрочитанное сообщение bagas » 2011-07-29 14:55:38

хмм , а если через крон сделать?
что бы скрипт каждую минуту проверял диреткорию.
вот вам к примеру косочек из моего скрипта, этот кусок проверяет пустая ли дерктория

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

#!/bin/sh
dir="/mnt/share/ЗП/"
if [[ -d "$dir" && "$(ls -A $dir)"  ]]
then
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.

Аватара пользователя
Alexander38
ефрейтор
Сообщения: 55
Зарегистрирован: 2011-05-13 15:26:25

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

Непрочитанное сообщение Alexander38 » 2011-07-29 15:02:11

спасибо, сейчас попробую разобраться

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

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

Непрочитанное сообщение schizoid » 2011-07-29 16:32:38

переименовать папку "временные" в папку "готовые" ;)
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Аватара пользователя
Alexander38
ефрейтор
Сообщения: 55
Зарегистрирован: 2011-05-13 15:26:25

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

Непрочитанное сообщение Alexander38 » 2011-07-31 9:01:12

в том то и дело что мне нужно что бы были 2 папки, и как только появлялись файлы в одной моментально перекидывались в другую..
сижу читаю документации по крону) надеюсь что смогу разобраться, хотя глядя на пример у bagas`а похоже что там можно использовать язык программирования паскаль?!

Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

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

Непрочитанное сообщение bagas » 2011-07-31 11:06:35

Сие чудо вы можете сделать на любом языке программирования, оператором if или циклом for сделать выборку.
у меня шел скрипт.
в кроне сделайте такую запись

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

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

Аватара пользователя
Alexander38
ефрейтор
Сообщения: 55
Зарегистрирован: 2011-05-13 15:26:25

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

Непрочитанное сообщение Alexander38 » 2011-08-01 11:13:21

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"

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

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

Непрочитанное сообщение schizoid » 2011-08-01 14:18:07

он у вас ручками то работает?
что-то на вскидку полно ошибок
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

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

Непрочитанное сообщение bagas » 2011-08-01 15:06:32

нет у вас он не будет работать!
во первых нужно закрыть оператор if
во вторых если он у вас по крону запускается то else "not file`s" не нужно.
в место then cp [[ -d "$dir" in "$dir2" ]] этого
then
/bin/cp -v $dir $dir2 сделайте это.
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.

Аватара пользователя
xelplogoog
мл. сержант
Сообщения: 134
Зарегистрирован: 2010-01-02 12:14:56

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

Непрочитанное сообщение xelplogoog » 2011-08-01 19:27:55

а нужны именно копии/дубли? может ln -s хватит?
/usr/ports/x11/yakuake-kde4 user

Аватара пользователя
Alexander38
ефрейтор
Сообщения: 55
Зарегистрирован: 2011-05-13 15:26:25

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

Непрочитанное сообщение Alexander38 » 2011-08-02 8:43:07

по сути копии не нужны, а ln -s это перемещение файлов?

Гость
проходил мимо

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

Непрочитанное сообщение Гость » 2011-08-02 8:49:39

нет. это мягкая ссылка
например, есть у тебя директория 1
если создать на нее ссылку ln -s 1 2
и кинуть фал в папку 1
то он тут же появится в папке 2
но физически будет находиться только в папке 1, и, если будет оттуда удален, пропадет и из папки 2

Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

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

Непрочитанное сообщение bagas » 2011-08-02 8:58:07

Alexander38 Я думаю , что вам надо почитать про команды в *nix.
Хотя бы азы понять.
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.

Аватара пользователя
Alexander38
ефрейтор
Сообщения: 55
Зарегистрирован: 2011-05-13 15:26:25

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

Непрочитанное сообщение Alexander38 » 2011-08-02 9:10:21

о как, этот вариант тоже прокатит. выходит так? :

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

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

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

Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

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

Непрочитанное сообщение bagas » 2011-08-02 9:13:41

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

#!/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»
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.

Аватара пользователя
Alexander38
ефрейтор
Сообщения: 55
Зарегистрирован: 2011-05-13 15:26:25

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

Непрочитанное сообщение Alexander38 » 2011-08-02 9:32:47

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

Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

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

Непрочитанное сообщение bagas » 2011-08-02 9:41:00

.db это фаел он мне ненужен...изо этого и исключение ему сделал.
переменную сор не помню для чего прописывал...$sor, скорее всего с начало выглядел скрипт так
FINDS=`ls "$SOR"*.* | grep -v '/$' | grep -v '.db'` и что то не сраслось, и пришлось путь полностью прописывать.
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.