The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"SunOS 5.11 +sh-скрипт +ftp не отправляет файл"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"SunOS 5.11 +sh-скрипт +ftp не отправляет файл"  +/
Сообщение от nepsterdk (ok) on 14-Май-12, 08:34 
Добрый день.
Имеется SunOS 5.11 sparc x64, sh-скрипт, crontab задача
Задача: ежедневно заливать по FTP файл на удаленную машину.
Изначально использовалась утилита ncftpput, которая отлично справлялась с задачей, но после не известных событий (о чем админы молчат) просто перестал работать скрипт.
Начал копать, ничего не нашел.
Сейчас используется обыкновенный /usr/bin/ftp, который в автоматическом режиме отказывается работать. В ручную все отлично, но когда crontab запускает скрипт, все выполняется (ведется небольшой лог), но часть кода с ftp отказывается.
вот часть скрипта с ftp:

export path_nngs
path=$HOME/work
export file_name
file_name=`cat $text_file`
...
ftp x.x.x.x <<EOF
put $file_name
lcd $path/ftp_tr
get $file_name
bye
EOF

Вкратце. В text_file записывается имя файла для заливки на сервер, которое считывается в file_name.
В разделе ftp сначала заливаю файл, потом его скачиваю в другое место, чтобы потом убедиться что передача прошла успешно.

Что может быть не так? В ручную все команды скрипта выполняются.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "SunOS 5.11 +sh-скрипт +ftp не отправляет файл"  +/
Сообщение от deadmustdie email on 14-Май-12, 14:45 
> Что может быть не так? В ручную все команды скрипта выполняются.

Если скрипт сам по себе срабатывает (при запуске "вручную"), скорее всего, при запуске через cron не выставлены нужные переменные окружения (в первую очередь PATH).

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

Если же скрипт сам по себе не работает как скрипт (даже при запуске вручную), следует смотреть на сообщения об ошибках и чинить скрипт.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "SunOS 5.11 +sh-скрипт +ftp не отправляет файл"  +/
Сообщение от nepsterdk (ok) on 18-Май-12, 08:10 
>> Что может быть не так? В ручную все команды скрипта выполняются.
> Если скрипт сам по себе срабатывает (при запуске "вручную"), скорее всего, при
> запуске через cron не выставлены нужные переменные окружения (в первую очередь
> PATH).
> Также возможно несоответствие интерпретатора, который используется при ручном запуске
> скрипта, и того, который применяется при запуске из-под cron.
> Если же скрипт сам по себе не работает как скрипт (даже при
> запуске вручную), следует смотреть на сообщения об ошибках и чинить скрипт.

Спасибо за ответ.
В ручную скрипт работает и все отправляет без проблем.
в самом начале скрипта явно указан интерпретатор
#!/bin/bash

Я пробовал изменить строку запуска в cron
45 1 * * * (. ~/.profile; ~/runscript.sh)
Но результата нет. в mail прилетает сообщение, что
Sourcing /home/user/.profile-EIS....
и все. Я так понимаю что файл профиля загружен, но скрипт не запущен.

Наверное ошибка в строке запуска? забыл sh?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "SunOS 5.11 +sh-скрипт +ftp не отправляет файл"  +/
Сообщение от deadmustdie email on 18-Май-12, 09:26 
> Наверное ошибка в строке запуска? забыл sh?

Я бы попробовал либо включить все нужные переменные окружения в сам скрипт, либо в него непосредственно прописал команду включения профиля.
Также я бы в crontab прописал полный путь к скрипту (без использования тильды).

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "SunOS 5.11 +sh-скрипт +ftp не отправляет файл"  +/
Сообщение от nepsterdk (ok) on 18-Май-12, 09:35 
>> Наверное ошибка в строке запуска? забыл sh?
> Я бы попробовал либо включить все нужные переменные окружения в сам скрипт,
> либо в него непосредственно прописал команду включения профиля.
> Также я бы в crontab прописал полный путь к скрипту (без использования
> тильды).

В скриптах переменные окружения заданы явно. С ними все нормально
С кроном, я сделал следующее.

45 1 * * * /bin/bash $HOME/script.sh

Тестирование на более раннем времени прошли успешно. Теперь будем надеяться что и в 1:45 все сработает.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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