Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: vox в Dec 09, 2011, 10:43



Титла: прост скрипт за качване на файлове
Публикувано от: vox в Dec 09, 2011, 10:43
Добър ден на всички списващи и четящи,

Два компютъра с Linux Ubuntu 8.04 (PC1) и Ubuntu 11.10 (PC2)
компютрите не са в една мрежа, но са с публични ip адреси,
На PC1 има директория /home/guest/log/ - в която има множество файлове(name.log, name1.log, name2.log ....nameN.log) ,
тези файлове ежедневно се генерират и броят им нараства
Посредством upload ftp script се мъча да качвам всички файлове от PC1 /home/guest/log на PC2 в /home/user/log/

както казах малко по-нагоре, файловете са многобройни но всички завършват с едно и също разширение .log. Потърсих в търсчките и намерих доста скриптове, в началото пробвах да ги архивирам на PC1 след това да ги качвам на PC2 и да ги резархивирам. Но първо, че не сработи след това ми се струва прекалено усложняване на процеса.
За това сега се мъча да ги качвам наведнъж, и ползвам следния скрип


Код
GeSHi (Bash):
  1. guest@PC1:~$ cat ftp_up.sh
  2. #!/bin/sh
  3. HOST='ftp.PC2.bg'
  4. USER='user'
  5. PASSWD='123'
  6. cd /home/guest/log/
  7. ls -ls
  8. FILE='*.log'
  9.  
  10. ftp -n $HOST <<END_SCRIPT
  11. quote USER $USER
  12. quote PASS $PASSWD
  13. cd log/
  14. put $FILE
  15. quit
  16. END_SCRIPT
  17. exit 0
  18.  

Скрипта е взаимстван от howto, но за жалост при мен не работи с очакваните резултати. Да, тръгва да качва файловете, прехвърля първия и спира. Някой има ли идея как да го накарам да прехвърля всички файлове с разширения .log, а не само първия файл ? Или пък да ме насочите дали е възможно цяла папка да речем PC1 /home/guest/log да се прехвърля посредством скрип и ftp на PC2 /home/ftp/


Титла: Re: прост скрипт за качване на файлове
Публикувано от: vox в Dec 09, 2011, 12:07
Съжалявам, че спамя форума. Но реших своя пробем заместих в скрипта "put *.log" с mput *.* и сработи.


Титла: Re: прост скрипт за качване на файлове
Публикувано от: laskov в Dec 09, 2011, 12:28
Може да се ползва също и wput ($2).
Цитат
Wput is a command-line ftp-client that looks like wget but instead of downloading, uploads files or whole directories to remote ftp-servers.


Титла: Re: прост скрипт за качване на файлове
Публикувано от: vox в Dec 09, 2011, 12:42
Код
GeSHi (Bash):
  1. #!/bin/sh
  2. HOST='ftp.PC2.bg'
  3. USER='user'
  4. PASSWD='123'
  5. cd /home/gues/log
  6. FILE='*.log'
  7.  
  8. ftp -inv $HOST <<END_SCRIPT
  9. quote USER $USER
  10. quote PASS $PASSWD
  11. cd log/
  12. binary
  13. prompt off
  14. mput $FILE
  15. bye
  16. ##quit
  17. END_SCRIPT
  18. ##exit 0

..ето така изглежда вече работещия скрип при мен.


Титла: Re: прост скрипт за качване на файлове
Публикувано от: sstefanov в Dec 09, 2011, 13:08
ncftpput -u 'user' -p '123' ftp.PC2.bg log /home/gues/log/*.log


Титла: Re: прост скрипт за качване на файлове
Публикувано от: jet в Dec 09, 2011, 14:04
друг вариант - монтираш си фтп ресурса в локална директория при тебе и си правиш каквото си искаш - tar, rsync, cp ...:

Код:
curlftpfs [user@]host:[dir] mountpoint [options]


Титла: Re: прост скрипт за качване на файлове
Публикувано от: vox в Dec 09, 2011, 14:38
Благодаря ви за отговорите, различните и интересни варианти. За сега със горния скрипт който съм пейстнал работи, но може да пробвам и другите решения.


Титла: Re: прост скрипт за качване на файлове
Публикувано от: Йордан в Dec 26, 2011, 15:27
Колега, погледни lftp. Мисля, че може да го ползваш за много неща :)