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

FTP, mput и копирование архива

Добавлено: 2010-06-14 22:33:00
InventoR
Настраиваю бэкапирование серверов, нашел в нете кусок текста как скопировать файл на ftp

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

if  [ $FTP = "y" ]
then
echo "Initiating FTP connection..."
cd $BACKDIR
ATTACH=`for file in *$DATE.sql.gz; do echo -n -e "mput ${file}\n"; done`
echo $ATTACH
echo START_FTP_CONNECT

ftp -nv <<EOF
open $FTPHOST
user $FTPUSER $FTPPASS
cd $FTPDIR
$ATTACH
quit
EOF
echo -e  "FTP transfer complete! \n"
fi
Но проблема в том что не работает.

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

Backups directory already exists
Backing up MySQL databases...
Initiating FTP connection...
mput support.second.ua-mysqlbackup-glpi-06-14-2010.sql.gz

START_FTP_CONNECT
Connected to ftp.second.ua.
220 ProFTPD 1.3.3 Server (ProFTPD Default Installation) [192.168.0.75]
331 Anonymous login ok, send your complete email address as your password
230 Anonymous access granted, restrictions apply
Remote system type is UNIX.
Using binary mode to transfer files.
250 CWD command successful
?Invalid command.
221 Goodbye.
FTP transfer complete!

Your backup is complete!
support#
Подозреваю что-то в mput не правильно прописано, но что именно не могу понять.

Re: FTP, mput и копирование архива

Добавлено: 2010-06-14 23:58:25
rmn
Все норм работает:

ftptest.sh:

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

#!/bin/sh

cmd="mput $1"

ftp -nv << EOF
o 10.10.4.2
user admin xxxxxxxxx
prompt off
binary
cd /private
$cmd
quit
EOF

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

remcomp% ./ftptest.sh ftptest.sh
Connected to 10.10.4.2.
220-FileZilla Server version 0.9.34 beta
220 rmn's ftp server
331 Password required for admin
230 Logged on
Remote system type is UNIX.
Interactive mode off.
200 Type set to I
250 CWD successful. "/private" is current directory.
local: ftptest.sh remote: ftptest.sh
229 Entering Extended Passive Mode (|||34237|)
150 Connection accepted
100% |**********************|   118       1.20 MB/s    00:00 ETA
226 Transfer OK
118 bytes sent in 00:00 (42.28 KB/s)
221 Goodbye

Re: FTP, mput и копирование архива

Добавлено: 2010-06-15 9:50:09
InventoR
Спасибо, вот эта строка решила первую часть проблемы.
prompt off
Но есть и вторая часть проблемы:

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

ATTACH=`for file in *$DATE.sql.gz; do echo -n -e "put ${file}\n"; done`
echo $ATTACH

показывает

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

put support.second.ua-mysqlbackup-glpi-06-15-2010.sql.gz
Дальше:

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

ftp -nv <<EOF
open 192.168.0.75
user ftp ftp
cd uploads
lcd $BACKDIR
prompt off
$ATTACH
quit
EOF
echo -e  "FTP transfer complete! \n"
fi
И вот эта команда:
$ATTACH не хочет выполнятся внутри скрипта.
Как бы изменить правильно чтобы избавиться от этой проблемы?

Re: FTP, mput и копирование архива

Добавлено: 2010-06-15 11:08:42
Гость
а не проще ли использовать?

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

cd $BACKDIR
ftp -u ftp://$FTPUSER:$FTPPASS@$FTPHOST/$FTPDIR *$DATE.sql.gz

Re: FTP, mput и копирование архива

Добавлено: 2010-06-16 16:28:45
schizoid
или scp использовать...секурнее как-то