powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Работа с файлами на удаленном сервере
19 сообщений из 19, страница 1 из 1
Работа с файлами на удаленном сервере
    #35301405
ssh36
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Стоит задача забирать файлы с удаленного сервера по протоколу SSH, как забирать понятно, командой scp. А как вот эти файлы на удаленном сервере потом переложить в какую-нибудь другую папочку, чтобы в следующий раз их не забрать заново? никак не разберусь....
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35301456
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssh36Добрый день. Стоит задача забирать файлы с удаленного сервера по протоколу SSH, как забирать понятно, командой scp. А как вот эти файлы на удаленном сервере потом переложить в какую-нибудь другую папочку, чтобы в следующий раз их не забрать заново? никак не разберусь....mv filename ../ne_zabirat
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35301544
ssh36
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, если зайти на удаленный сервер и выполнить эту команду, то конечно проблем никаких нет :)
Но вот как это заавтоматизировать в скрипте?
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35301581
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так тоже через ssh

ssh имясервера команда
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35301588
g613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssh36Да, если зайти на удаленный сервер и выполнить эту команду, то конечно проблем никаких нет :)
Но вот как это заавтоматизировать в скрипте?

Код: plaintext
1.
ssh b127 'cat /tmp/123 && mv /tmp/123 /tmp/123.bak' > /tmp/ 123 .new

?
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35302478
ssh36
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое!
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35305293
ssh36
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Снова я :)

Пытаюсь вот такой конструкцией получить список файлов, которые надо загрузить:

ftp -n -p $HOST_NAME $PORT_NAME > $TEMP_FILE <<EOF
quote USER $USER_NAME
quote PASS $QUOTE_NAME
cd $F_DATA_DIR
ls
quit
EOF

однако мне в файл помимо названия вываливается еще куча ненужной информации.

drwxr-xr-x 3 logs_s1211197 (?) 512 May 11 15:02 .
drwxr-xr-x 8 logs_s1211197 (?) 512 May 11 14:21 ..
-rw-r--r-- 1 logs_s1211197 (?) 6 May 11 14:22 PYM_11_05_08_12_00_00.DAT
-rw-r--r-- 1 logs_s1211197 (?) 4 May 11 14:51 PYM_11_05_08_12_00_00.LOG
-rw-r--r-- 1 logs_s1211197 (?) 6 May 11 14:52 PYM_11_05_08_13_00_00.DAT
-rw-r--r-- 1 logs_s1211197 (?) 6 May 11 15:01 PYM_11_05_08_13_00_00.LOG
-rw-r--r-- 1 logs_s1211197 (?) 6 May 11 15:02 PYM_11_05_08_14_00_00.DAT
-rw-r--r-- 1 logs_s1211197 (?) 6 May 11 15:01 PYM_11_05_08_14_00_00.LOG
drwxr-xr-x 2 logs_s1211197 (?) 512 May 11 14:21 done

Как бы сделать так, чтобы выводились только имена файлов? Чтобы потом их можно было бы через цикл скопировать на сервер.
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35305312
1. Попробуйте воспользоваться командой nlist .
2. В дальнейшем для обработки файла $TEMP_FILE Вы можете воспользоваться каким либо редактором для выделения необходимой информации, например AWK.
3. Не будет ли Вам достаточно использовать команду mget с указанимем необходимых для копирования файлов по маске.
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35305647
ssh36
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
g613 ssh36Да, если зайти на удаленный сервер и выполнить эту команду, то конечно проблем никаких нет :)
Но вот как это заавтоматизировать в скрипте?

Код: plaintext
1.
ssh b127 'cat /tmp/123 && mv /tmp/123 /tmp/123.bak' > /tmp/ 123 .new

?

А как в команде передавать переменные?
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35305701
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssh36Снова я :)

Пытаюсь вот такой конструкцией получить список файлов, которые надо загрузить:

ftp -n -p $HOST_NAME $PORT_NAME > $TEMP_FILE <<EOF


Как бы сделать так, чтобы выводились только имена файлов? Чтобы потом их можно было бы через цикл скопировать на сервер.ssh b127 'ls /usr' >filelist
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35305707
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssh36А как в команде передавать переменные?
export AAA=hehe; ssh -l oracle test-bo "echo $AAA"
hehe
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35305933
ssh36
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще раз большое спасибо. У меня остался только один последний вопрос: если в цикле выполнять команду ssh, то почему-то выполняется только одна итерация.

Содержимое файла $TEMP_FILE:
PYM_09_05_2008_06_00_01.DAT
PYM_09_05_2008_12_00_00.CTL
PYM_09_05_2008_12_00_00.DAT
PYM_09_05_2008_18_00_01.CTL
PYM_09_05_2008_18_00_01.DAT
PYM_10_05_2008_00_00_00.CTL
PYM_10_05_2008_00_00_00.DAT
PYM_10_05_2008_06_00_02.CTL
PYM_10_05_2008_06_00_02.DAT
PYM_10_05_2008_12_00_01.CTL
PYM_10_05_2008_12_00_01.DAT
PYM_10_05_2008_18_00_01.CTL
PYM_10_05_2008_18_00_01.DAT
PYM_11_05_2008_00_00_01.CTL
PYM_11_05_2008_00_00_01.DAT

Все эти файлы уже лежат в $DATA_DIR/$FILE_NAME
Кусок программы:

cat $TEMP_FILE | while read FILE_NAME; do
W_FILE_NAME=$DATA_DIR/$FILE_NAME
if [ -f $W_FILE_NAME ]
then
{
cp $W_FILE_NAME $HISTORY_DIR
echo `current_date`: Copied $W_FILE_NAME to HISTORY
ssh ****** "mv ./$FILE_NAME ./done/$FILE_NAME"
echo `current_date`: removed $FILE_NAME to DONE from remote host
}
fi
done

Т.е. в данном случае скопируется в архивную папку и переместится в папку done на удаленном сервере только самый первый файл.
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35306006
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В начале скрипта включи отладку
set -x


-----------------------------------------------------------------------------------------------------------------------------------------
А вазелин еще надо заслужить.
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35306084
ssh36
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот, добавил в вывод еще предыдущий кусок, который файлы забирает.
В файле payments.tmp две записи:
PYM_12_05_2008_12_00_02.CTL
PYM_12_05_2008_12_00_02.DAT
В первом цикле все хорошо, два файла скопировались с удаленного сервера, а вот во втором цикле - только первый файл.

+ cd /export/home/payments/oper
+ read FILE_NAME
+ cat /export/home/tmp/payments.tmp
HISTORY_FILE_NAME=/export/home/payments/history/PYM_12_05_2008_12_00_02.CTL
+ [ -f PYM_12_05_2008_12_00_02.CTL ] -a [ -f /export/home/payments/history/PYM_12_05_2008_12_00_02.CTL ]
+ current_date
+ date +%Y-%m-%d %H:%M:%S
+ return
+ echo 2008-05-12 12:04:00: loading PYM_12_05_2008_12_00_02.CTL
+ scp -Cp ********/PYM_12_05_2008_12_00_02.CTL /export/home/payments/oper/PYM_12_05_2008_12_00_02.CTL
+ current_date
+ date +%Y-%m-%d %H:%M:%S
+ return
+ echo 2008-05-12 12:04:01: PYM_12_05_2008_12_00_02.CTL is loaded
+ read FILE_NAME
HISTORY_FILE_NAME=/export/home/payments/history/PYM_12_05_2008_12_00_02.DAT
+ [ -f PYM_12_05_2008_12_00_02.DAT ] -a [ -f /export/home/payments/history/PYM_12_05_2008_12_00_02.DAT ]
+ current_date
+ date +%Y-%m-%d %H:%M:%S
+ return
+ echo 2008-05-12 12:04:01: loading PYM_12_05_2008_12_00_02.DAT
+ scp -Cp ***************/PYM_12_05_2008_12_00_02.DAT /export/home/payments/oper/PYM_12_05_2008_12_00_02.DAT
+ current_date
+ date +%Y-%m-%d %H:%M:%S
+ return
+ echo 2008-05-12 12:04:02: PYM_12_05_2008_12_00_02.DAT is loaded
+ read FILE_NAME
+ read FILE_NAME
+ cat /export/home/tmp/payments.tmp
W_FILE_NAME=/export/home/payments/oper/PYM_12_05_2008_12_00_02.CTL
+ echo
+ echo /export/home/payments/oper/PYM_12_05_2008_12_00_02.CTL
+ [ -f /export/home/payments/oper/PYM_12_05_2008_12_00_02.CTL ]
+ cp /export/home/payments/oper/PYM_12_05_2008_12_00_02.CTL /export/home/payments/history
+ current_date
+ date +%Y-%m-%d %H:%M:%S
+ return
+ echo 2008-05-12 12:04:02: Copied /export/home/payments/oper/PYM_12_05_2008_12_00_02.CTL to HISTORY
+ ssh ******** mv ./PYM_12_05_2008_12_00_02.CTL ./done/PYM_12_05_2008_12_00_02.CTL
+ current_date
+ date +%Y-%m-%d %H:%M:%S
+ return
+ echo 2008-05-12 12:04:02: removed PYM_12_05_2008_12_00_02.CTL to DONE from remote host
+ read FILE_NAME
+ test -f /export/home/tmp/payments.lock
+ rm /export/home/tmp/payments.lock
+ current_date
+ date +%Y-%m-%d %H:%M:%S
+ return
+ echo 2008-05-12 12:04:02: Get PM finished successfully
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35306132
ssh36
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, забыл добавить, если в коде закомментировать строчку с ssh, то цикл как и положено пройдет два раза.
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35306197
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вызов ssh почему-то портит текущий контекст и следующей итерации не происходит.

а вот так у меня работает
Код: plaintext
1.
2.
ssh ****** "mv ./$FILE_NAME ./done/$FILE_NAME" &
wait

-----------------------------------------------------------------------------------------------------------------------------------------
А вазелин еще надо заслужить.
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35306209
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впрочем если пользоваться нормальным циклом то все работает и так

cat $TEMP_FILE | while read FILE_NAME; do
заменить на
for FILE_NAME in `cat $TEMP_FILE`;

-----------------------------------------------------------------------------------------------------------------------------------------
А вазелин еще надо заслужить.
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35308036
ssh36
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Денис, спасибо!
...
Рейтинг: 0 / 0
Работа с файлами на удаленном сервере
    #35308060
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssh36Денис, спасибо!Вообще все это можно сделать в одном соединении (для этого придуман expect), у нас тоже сделана ручная репликация в оракле, с помощью sqlldr + expect + ftp.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Работа с файлами на удаленном сервере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]