Autor |
Sõnum |
Ruutz
Pingviini külastaja
Vanus: 40
Liitunud: 27.11.2007
Postitused: 21
Asukoht: Pärnu
Distributsioon: Suse/Debian
|
|
Oleks vaja ühte scripti mis kopeeriks faili ftp serverisse(asub välisvõrgus). Endal mõistus otsas neid mida netis leidnud olen ei tööta.
|
|
|
|
|
|
|
|
obundra
Vana Pingviin
Vanus: 49
Liitunud: 04.08.2005
Postitused: 1213
Asukoht: 127.0.0.1
Distributsioon: RHEL, Solaris, Debian, Gentoo
|
|
Just äsja netist otsitud, testitud ja töötav .Tekita mingi fail(näiteks ftpskript) sisuga:
Kood: | #!/bin/sh
HOST='sinusftperver'
USER='ftpkasutaja'
PASSWD='ftpparool'
FILE='kopeeritav.fail'
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
put $FILE
quit
END_SCRIPT
exit 0 |
anna sellele käivitusõigus, muuda kasutaja, parool jne selliseks nagu sul vaja ja käivita ./ftpskript
Muidugi pole eriti hea mõte hoida paroole niimoodi skriptis, turvalisem oleks kasutada sftp või scp ja autentimist võtmetega.
Juhend kah http://www.stratigery.com/scripting.ftp.html
Näiteks scp abil käiks umbes niimoodi, ennem peab mõlema masina vahel olema seadistatud võtmetega autentimine
Kood: | #!/bin/sh
/usr/bin/scp -i /home/kasutaja/võtmefail /fail/kopeerimiseks kasutaja@hostinimi:/kuhu/fail/kopeerida/
|
Jutt http://kuutorvaja.eenet.ee/wiki/Ssh#Kasututaja_autentimine_tema_RSA_v.C3.B5tmetega
|
|
|
|
_________________ IT teenused
|
|
|
|
-IFFI-
Vana Pingviin
Vanus: 48
Liitunud: 25.06.2005
Postitused: 1411
Asukoht: Lappeenranta-Turku
Distributsioon: Linux MX
|
|
Oleks huvitatud vastupidisest scriptist ehk siis, et määratud ajal võtab script ühendust välise serveriga ja laadib/sünkroonib sealt teatud kausta/faili?
Usun, et see vast on täiesti realselt võimalik!?
|
|
|
|
|
|
|
|
antik2
Vana Pingviin
Liitunud: 09.10.2006
Postitused: 634
Distributsioon: Big Strong D...
|
|
-IFFI- kirjutas: | Oleks huvitatud vastupidisest scriptist ehk siis, et määratud ajal võtab script ühendust välise serveriga ja laadib/sünkroonib sealt teatud kausta/faili?
Usun, et see vast on täiesti realselt võimalik!? |
Asendad eelnevas skriptis ühe rea:
put $FILE
sellega:
get $FILE
|
|
|
|
|
|
|
|
obundra
Vana Pingviin
Vanus: 49
Liitunud: 04.08.2005
Postitused: 1213
Asukoht: 127.0.0.1
Distributsioon: RHEL, Solaris, Debian, Gentoo
|
|
-IFFI- kirjutas: | Oleks huvitatud vastupidisest scriptist ehk siis, et määratud ajal võtab script ühendust välise serveriga ja laadib/sünkroonib sealt teatud kausta/faili?
Usun, et see vast on täiesti realselt võimalik!? |
Lisaks ftp-le võid näituseks rsynci võimalusi katsetada
http://kuutorvaja.eenet.ee/wiki/Rsync
|
|
|
|
_________________ IT teenused
|
|
|
|
-IFFI-
Vana Pingviin
Vanus: 48
Liitunud: 25.06.2005
Postitused: 1411
Asukoht: Lappeenranta-Turku
Distributsioon: Linux MX
|
|
Olen vahepeal üritanud seda scripti näppida kui mahti olen saanud aga see kõik on mulle kui raketiteadus, mina seda toimima ei saa. Võimalusel paluks "puust ja punaseks" teha asi. Puurinud ka guuglit aga seal tundusid asjad väga keerulised. Eks asi jääb ka omal keele taha ja valede otsingusõnade taha kinni.
rsync ja muud analoogid katsetatud, ei õnnestu mul neid õigesti seadistada tööl.
Idee on siis järgmine, et kodune masin käiks läbi SSH minu VPS-is ja kopeeriks või sünkrooniks vpsis asuva BACKUP kaustas olevaid faile kodusesse arvuti. Asuvad mul seal www ja mysql backupid. Pole vahet kas sünkroonib kogu kausta või siis seal asuvaid faile.
Tegin siis sellise scripti omal testiks
Kood: | #!/bin/sh
HOST='sftp://279.433.333.932'
USER='kasutajanimi'
PASSWD='parool'
FILE='/var/backups'
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
get $FILE
quit
END_SCRIPT
exit 0 |
Salvestasin selle siis ./ftpskript.sh
Avasin terminali ja logisin ruuduks ennast ning siis liikusin CD käsuga kausta kus script asub ning kui sisestasin ./ftpskript sain vastuseks bash: ./ftpskript.sh: Permission denied
Oleksin ülimalt rõõmus kui saaks selle skripti tööle ja päkupid oma masina
|
|
|
|
|
|
|
|
mihkel
Vana Pingviin
Liitunud: 16.04.2006
Postitused: 1284
Distributsioon: Fedora/Centos
|
|
Kui saad sellise veateate, siis esimene asi oleks kontrollida õigusi
Mida näitab
ls -l
selle skripti kataloogis
|
|
|
|
|
|
|
|
-IFFI-
Vana Pingviin
Vanus: 48
Liitunud: 25.06.2005
Postitused: 1411
Asukoht: Lappeenranta-Turku
Distributsioon: Linux MX
|
|
sellele failile näitab nii.
-rw-rw-r-- 1 iffi iffi 186 juuni 13 21:58 ftpskript.sh
ega ma noid õigusi jah ei oska miskit määrata.
|
|
|
|
|
|
|
|
mihkel
Vana Pingviin
Liitunud: 16.04.2006
Postitused: 1284
Distributsioon: Fedora/Centos
|
|
Käivitusõigus ju puudu.
chmod +x ftpskript.sh
|
|
|
|
|
|
|
|
-IFFI-
Vana Pingviin
Vanus: 48
Liitunud: 25.06.2005
Postitused: 1411
Asukoht: Lappeenranta-Turku
Distributsioon: Linux MX
|
|
Nüüd miski vale aadres. Ise kasutan küll jah SFTP-d aga siin ei lase ka seda või taas ma ei oska.
Terminalist selline vastus
[code]root@iffi-iffi:/home/iffi/Dokumendid# ./ftpskript.sh
ftp: ftp://***.***.***.*** Name or service not known
Not connected.
Not connected.
Not connected.
|
|
|
|
|
|
|
|
obundra
Vana Pingviin
Vanus: 49
Liitunud: 04.08.2005
Postitused: 1213
Asukoht: 127.0.0.1
Distributsioon: RHEL, Solaris, Debian, Gentoo
|
|
Hosti nimi su skriptis peab olema ainult nimi, ehk siis nime eest jäta igasugu ftp:// ja sftp:// ära.
Kui scp tahad kasutada, siis piisab näiteks sellest:
Kood: | /usr/bin/scp -r -i /home/kasutaja/võtmefail kasutaja@hostinimi:/kaust/mis/kopeerida/ /kuhu/kopeerida/ |
|
|
|
|
_________________ IT teenused
|
|
|
|
-IFFI-
Vana Pingviin
Vanus: 48
Liitunud: 25.06.2005
Postitused: 1411
Asukoht: Lappeenranta-Turku
Distributsioon: Linux MX
|
|
Tänud, sain toimima. Aga kuidas panna asi automaatselt iga öö tööle? ja kuidas salvestada sinna scripti oma VPS SSH parool, et ta seda ei küsiks.
Ennem vpsi ssh parooli küsis Enter passphrase for key '/home/iffi/.ssh': sisestasin sinna number 1 ja siis seejärel vpsi ssh parooli:!
|
|
|
|
|
|
|
|
illukas
Vana Pingviin
Vanus: 44
Liitunud: 24.10.2006
Postitused: 2036
|
|
croniga panedki öösiti tööle ja skripti sisse kirjutad mingi muutujaga ka parooli
PS root accounti ei ole mõistlik selleks kasutada, tee mingi suvaline kasutaja just ja ainult selleks tööks- veel hea oleks kui kasutaja on chrooditud ja kõikvõimalikud limitid on peal jne... übersuper oleks talle acl-idega tervele failisüsteemile ka deny teha...
seda siis ideaalis
|
|
|
|
_________________ https://www.inlink.ee
|
|
|
|
-IFFI-
Vana Pingviin
Vanus: 48
Liitunud: 25.06.2005
Postitused: 1411
Asukoht: Lappeenranta-Turku
Distributsioon: Linux MX
|
|
Ok, ja tänud vihje eest aga nagu ma eespool mainisin pole ma suuteline oma peaga seda croni ja miskit muutujat sinna juurde keevitama ja cronni käivitama.
Jah, olen juba korduvalt saanud "mööda näppe" selle root õigustes VPS-i näpimisest
-E- Cronile vist sain pihta sinna tuleb vist lisada ette aeg....hetkel siis näeb scripti algus välja selline
Kood: | * 0 * * */usr/bin/scp -r -i.... |
Nii palju kui ma arusain siis see 0 peaks saatma automaatselt selle scripti faile tooma. Olen ma õigel teel?
Hetkel ei kannata testida kuna scripti on vaja saada veel nod paroolid sisse, et ei küsiks igal käivitamisel.
|
|
|
|
|
|
|
|
akbgf
Vana Pingviin
Liitunud: 07.10.2009
Postitused: 763
Asukoht: Tõravere
Distributsioon: OpenSUSE, Ubuntu
|
|
-IFFI- kirjutas: | Cronile vist sain pihta sinna tuleb vist lisada ette aeg....hetkel siis näeb scripti algus välja selline
Kood: | * 0 * * */usr/bin/scp -r -i.... |
Nii palju kui ma arusain siis see 0 peaks saatma automaatselt selle scripti faile tooma. Olen ma õigel teel? |
Enamvähem. Pane esimese tärni asemele ka mingi number, muidu hakkab käsku täitma iga minut, kui kellaaja tunninäit on null.
Täidetavaks pane /usr/bin/scp asemele oma skript
/home/iffi/Dokumendid/ftpskript.sh
Croni proovimiseks tee lihtsam skript, näiteks
:
date
echo 'Tere IFFI!'
Seda võid lasta julgesti igal kellaajal käima.
|
|
|
|
|
|
|
|
illukas
Vana Pingviin
Vanus: 44
Liitunud: 24.10.2006
Postitused: 2036
|
|
võtsin masinatest mingi suvalise scripti... jookseb küll rsynciga kuid lihtne mingit teist asja asemele tekitada.
Kui keegi viitsib selle wikisse ülesse panna oleks heameelega nõus
|
rsync.sh.zip |
Kirjeldus: |
backup script rsync baasil |
|
Allalaadimised |
Failinimi: |
rsync.sh.zip |
Failisuurus: |
781 baiti |
Alla laaditud: |
300 kord(a) |
|
|
|
_________________ https://www.inlink.ee
|
|
|
|
-IFFI-
Vana Pingviin
Vanus: 48
Liitunud: 25.06.2005
Postitused: 1411
Asukoht: Lappeenranta-Turku
Distributsioon: Linux MX
|
|
Niih, asi siis nii kaugel, et croni asja sain käima ja selgeks ja nüüd jääb puudu veel aint see parooli küsimine.
Terminalis siis asi näeb hetkel välja nii kui käivitan oma scripti.
Kood: | iffi@iffi-iffi:~$ ./backup.sh
Enter passphrase for key '/home/iffi/.ssh': [I](siin vajutan lihtsalt enter)[/I]
root@***.***.***.***'s password: [I](ja siia pean siis sisestama parooli käsitsi)[/I]
|
Et kuidas siis saaks lahti sellest probleemist. Siis asi ka toimiks perfectselt.
illukas antud scripti pole veel proovinud aga uurisin sisu ja ei näinud sealgi võimalust kuhugi parooli kirjutada. Ei hakka veel seda testima, prooviks esmalt ikka oma leiutise käima saada.
Võib visata ka siia linke kuidas ja kuhu need paroolid kirjutama peab, ise ei suuda välja guugeldada.
|
|
|
|
|
|
|
|
akbgf
Vana Pingviin
Liitunud: 07.10.2009
Postitused: 763
Asukoht: Tõravere
Distributsioon: OpenSUSE, Ubuntu
|
|
-IFFI- kirjutas: | Niih, asi siis nii kaugel, et croni asja sain käima ja selgeks ja nüüd jääb puudu veel aint see parooli küsimine.
|
man ftp aitab.
Oma kodukataloogi .netrc faili pane vajalikud asjad kirja.
|
|
|
|
|
|
|
|
-IFFI-
Vana Pingviin
Vanus: 48
Liitunud: 25.06.2005
Postitused: 1411
Asukoht: Lappeenranta-Turku
Distributsioon: Linux MX
|
|
Nüüd sai vist pika googeldamise ja muu lugemisega valmis voolitud see .netrc fail sisuga;
Kood: | machine 192.168.22.45
login walker
password abc123
macdef init
prompt
as
mget rpt*.log
quit |
Salvestasin /home/iffi/.netrc
chmoodisin #chmod 600 .netrc
Viskasin shelli käsu
# .netrc
ja väljund selline alates chmodimisest
Kood: | root@iffi-iffi:/home/iffi# chmod 600 .netrc
root@iffi-iffi:/home/iffi# .netrc
.netrc: command not found
root@iffi-iffi:/home/iffi# ./netrc
./netrc: line 1: machine: käsku ei ole
Login incorrect
iffi-iffi login:
Login timed out after 60 seconds.
./netrc: line 3: password: käsku ei ole
./netrc: line 4: macdef: käsku ei ole
./netrc: line 5: prompt: käsku ei ole
root@iffi-iffi:/home/iffi# .netrc
.netrc: command not found
|
Et siis taas küsimused kus mis on valesti ja kuidas ma seda näitan selle ette ./backup.sh failile, et to sealt võtaks selle parooli? Cron on ka loodud hetkel testimise eesmärgil järgmisel kujul
Kood: | 50 16 * * * /home/iffi/./backup.sh > /var/log/backup.log |
Mõistus on täiesti otsas aga vist kaugel enam pole, et asi käima saada korralikult.
|
|
|
|
|
|
|
|
akbgf
Vana Pingviin
Liitunud: 07.10.2009
Postitused: 763
Asukoht: Tõravere
Distributsioon: OpenSUSE, Ubuntu
|
|
-IFFI- kirjutas: | Mõistus on täiesti otsas aga vist kaugel enam pole, et asi käima saada korralikult. |
Eks ta paras puderkapsaatika on Sul.
Alustaks tagantpoolt.
> 50 16 * * * /home/iffi/./backup.sh > /var/log/backup.log
sinna iffi ja backup.sh vahele pole punkti vaja.
Millega backup.sh-is faile liigutatakse, kas ftp või scp-ga?
$HOME/.netrc on konfifail ftp jaoks. See ei kuulu täitmisele ei käsurealt ega skriptis.
Minul on ftp pakist lukemftp-1.5-733.1.i586. Selle man pakub ka käsurealt parooli andmise võimalust ja see töötab:
usage: ftp [-AadefginpRtvV] [-o outfile] [-P port] [-r retry]
[-T dir,max[,inc][[user@]host [port]]] [host:path[/]]
[file:///file] [ftp://[user[:pass]@]host[:port]/path[/]]
[http://[user[:pass]@]host[:port]/path] [...]
% ftp -o test.txt ftp://kasutaja:parool@my.host.ee/test.txt
Trying ???.??.1...
Connected to my.host.ee.
220 (vsFTPd 2.0.1)
331 Please specify the password.
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
200 Switching to Binary mode.
local: test.txt remote: test.txt
229 Entering Extended Passive Mode (|||18619|)
150 Opening BINARY mode data connection for test.txt (32808 bytes).
100% |*****************************************************| 32808 2.39 MB/s 00:00 ETA
226 File send OK.
32808 bytes received in 00:00 (2.38 MB/s)
221 Goodbye.
Faili asukoht on kasutaja kodukataloogi suhtes, nii et kui fail on /home/iffi/test.txt, siis ftp käsus jäetakse /home/iffi eest ära.
Siin ka näide ühe anonüümse ftp-sessiooni kirjeldusest .netrc-s, kus kasutaja on ftp ja parool on minu e-aadress:
Tollast ftp-ga skripti pole enam alles, praegu saan need failid kätte wget-iga.
E:
Leidsin siiski üles. Ega seal polnudki midagi erilist,
mfr.sh, mis käivitati öösel croniga :
ftp ftp.meteo.fr >> ~/.crontab_log/MF_log 2>&1
set `tail \-1 ~/.crontab_log/MF_log`
if [ $1 = ftp: ]
then
ed -s [väike redigeerimine]
else
ed -s [väike redigeerimine]
fi
Kogu seda ed-ga redigeerimist pole Sul vaja.
|
|
|
|
|
|
|
|
|