The OpenNET Project / Index page

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

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

"Архивация и передача данных по фтп"  +/
Сообщение от gmananton email(ok) on 30-Янв-12, 14:40 
Есть сервис Jenkins. Останавливаем его, архивируем папку с конфигом и данными и отсылаем по фтп архив на сервер. Скрипт следующий:


#! /bin/sh
#/var/lib/jenkins/jenkins_update.sh

jenkins="/etc/init.d/jenkins"
tar="/bin/tar"
from_dir="/var/lib/jenkins"
into_dir="/media/backups"
aptitude="/usr/bin/aptitude"
ftp="/usr/bin/ftp"

FTP_HOST="10.0.0.21"
USER=jenkins
PASSWD=password
FTP_DIR=Jenkins_backup

DATE=$(/bin/date +%d_%m_%Y)
FILE="backup_$DATE.jnkbkp"

rm *.jnkbkp

    $jenkins stop
    $tar -cjvf ./$FILE *
    # c-create; j-use bzip2; v-verbose; f-file

$jenkins start

    #uploading to ftp
echo " "; echo "Starting loading to ftp..."; echo " "
   $ftp -v -n $FTP_HOST << FTPSESSION

    user $USER $PASSWD
    binary
    cd $FTP_DIR
    send $FILE
    disconnect
    exit
                        FTPSESSION
exit 0


Фишка в том, что при автоматическом запуске (а скрипт должен работать по крону), раз на раз не приходится, но часто на сервер передается битый архив размером всего в 42 кБ. При этом, если запустить скрипт вручную, он ВСЕГДА отрабатывает правильно и архив заливается 100-метровый. Сначала было подозрение, что фтп включался в текстовом режиме, я специально дал команду binary, но как-то начало косячить снова. В чем дело - ума не приложу. Разницы никакой не должно быть - и руками и по крону скрипт запускается от рута. Косяк происходит по ходу в момент передачи на фтп, т.е. изначально на самом сервере все архивируется полностью.

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

Оглавление

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


1. "Архивация и передача данных по фтп"  +/
Сообщение от КуКу (ok) on 30-Янв-12, 16:22 
Советую использовать lftp.  Простой клиент для работы с фтп.
у меня с его помощью бекапы заливаются на фтп. Вообщем man lftp.

p.s.  в скриптах использую строчку:

#lftp -e "put ${DIR}/${NAME} && exit" -u ${USER},${PASS} ${IP_SERVER}

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

2. "Архивация и передача данных по фтп"  +/
Сообщение от gmananton email(ok) on 30-Янв-12, 16:42 
> Советую использовать lftp.  Простой клиент для работы с фтп.
> у меня с его помощью бекапы заливаются на фтп. Вообщем man lftp.
> p.s.  в скриптах использую строчку:
> #lftp -e "put ${DIR}/${NAME} && exit" -u ${USER},${PASS} ${IP_SERVER}

точно такое название? что-то мне даже гугл ближайшее выдал - iftp, никакого намека на 1ftp вообще нет

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

4. "Архивация и передача данных по фтп"  +/
Сообщение от КуКу (ok) on 30-Янв-12, 17:31 
root@debian-test:~# aptitude search lftp
p   curlftpfs                                                                                       - filesystem to access FTP hosts based on FUSE and cURL
i   lftp                                                                                            - Sophisticated command-line FTP/HTTP client programs
______________________________________________________________

[root@centos-test ~]# yum search lftp
Loaded plugins: fastestmirror
Determining fastest mirrors
================================================================================================ Matched: lftp =================================================================================================
lftp.i386 : A sophisticated file transfer program
[root@centr-res ~]#

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

5. "Архивация и передача данных по фтп"  +/
Сообщение от КуКу (ok) on 30-Янв-12, 17:33 
У Вас ошибка, там первый символ не 1, а l(L)
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

6. "Архивация и передача данных по фтп"  +/
Сообщение от gmananton email(ok) on 01-Фев-12, 02:35 
> У Вас ошибка, там первый символ не 1, а l(L)

все норм ) с lftp вроде четко заработало

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

7. "Архивация и передача данных по фтп"  +/
Сообщение от gmananton email(ok) on 06-Фев-12, 09:28 
>> У Вас ошибка, там первый символ не 1, а l(L)
> все норм ) с lftp вроде четко заработало

ошибся(( опять же вручную запускал - все нормально было, а автоматом заупстилось - те же 42 КБ

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

8. "Архивация и передача данных по фтп"  +/
Сообщение от Pahanivo (ok) on 06-Фев-12, 10:16 
>>> У Вас ошибка, там первый символ не 1, а l(L)
>> все норм ) с lftp вроде четко заработало
> ошибся(( опять же вручную запускал - все нормально было, а автоматом заупстилось
> - те же 42 КБ

перед get дерни список файлов с фтп - может у тебя целевой файл кривой на время старта скрипта ...

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

9. "Архивация и передача данных по фтп"  +/
Сообщение от gmananton email(ok) on 10-Фев-12, 09:58 
>>>> У Вас ошибка, там первый символ не 1, а l(L)
>>> все норм ) с lftp вроде четко заработало
>> ошибся(( опять же вручную запускал - все нормально было, а автоматом заупстилось
>> - те же 42 КБ
> перед get дерни список файлов с фтп - может у тебя целевой
> файл кривой на время старта скрипта ...

да нет - при запуске руками он ВСЕГДА отрабатывает хорошо

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

10. "Архивация и передача данных по фтп"  +/
Сообщение от Pahanivo (ok) on 10-Фев-12, 11:59 
> да нет - при запуске руками он ВСЕГДА отрабатывает хорошо

я не про это - перед перетаскиванием по фтп убедись командой ls что целевой файл заведомо цел - вывод ls в лог файл
чтобы знать что на момент запуска файл у тебя нормальный

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

11. "Архивация и передача данных по фтп"  +/
Сообщение от gmananton email(ok) on 19-Фев-12, 14:26 
Нашел, в чем проблема была. Скрипт в кроне запускается от имени рута. Когда мы переходим под какого-либо пользователя, мы оказываемся в его домашней папке. У так как мне надо было архивировать /var/lib/jenkins , а это и есть домашний каталог пользователя jenkins, я никуда не переходил и просто запуская скрипт, архивировал то что лежит в текущей папке. Т.е. tar ./*
а у рута естественно лежат совершенно другие файлы

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

3. "Архивация и передача данных по фтп"  +/
Сообщение от Pahanivo (ok) on 30-Янв-12, 17:20 
> Косяк происходит по ходу в момент передачи на фтп, т.е. изначально на самом сервере все архивируется полностью.

точно полностью?
вылови exit code у фтп клиента, посмотри что происходит
мож там диск бонально на приемнике переполняется

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

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

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




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

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