Se dopolnjuje!!!!!!!
----- spodaj procedura test.sh---- pozenem ./test.sh (se prej odscitim za izvajanje chmod +x test.sh) #!/bin/sh PSQL=/usr/local/pgsql/bin/psql export PGUSER=peterm export PGPASSWORD=patern $PSQL bazatest -c " delete from vodbila_tek;" $PSQL bazatest -c "\\copy vod_bil_tek from '/home/et_p/zmvnos.txt' using delimiters ';'" $PSQL bazatest -c "\\copy vod_bil from '/home/et_p/zmarhiv.txt' using delimiters ';'" $PSQL bazatest -H -P footer -f '/home/internet/tabelaWB_.txt' > 'tabelaWB_.html' $PSQL porabniki -H -P footer -f '/home/internet/temp.txt' > 'temp.html' cd /home/peterm cat << EndOfFile >/tmp/ftpscr.$$ user peterm patern cd higro/txt put temp.html put tabelaWB_.html EndOfFile ftp -n meta.rak-lj.si v.v ali na ekran [peterm@baza delo]$ psql bazatest -c " select * from vodbila_tek where id_parr=4;" id_parr | as | vc | d1 | rt| fr | dg ----+--------------+---------------+-------------+-------------------+-----------------+------------------ 4 | 7 | 1950-05-18 | 1992-01-01 | | | 4 | 51 | 1950-05-18 | 1992-01-01 | | | 4 | 52 | 1950-05-18 | 1992-01-01 | | | 4 | 60 | 1950-05-18 | 1992-01-01 | | | (4 rows) Datum 25.8.2003 ------------------------------------ ------------------------------------------------------------ 29) KAKO FTP ----------------------------- FTP LINUX - prenasam datoteko test1.txt na drug ftp server ftp.inerge.si 1) Deluje [janez@server programi]$ vi ftp_inerge.sh user slane D23iprj put test1.txt [janez@server programi]$ chmod + ftp_inerge.sh [janez@server programi]$ ftp -n ftp.inerge.si < ftp_inerge.sh - se stran za spodnjo proceduro http://www.inlumineconsulting.com:8080/website/scripting.ftp.html 2) Bolje kot 1 [janez@server programi]$ vi ftpinerge.sh #!/bin/sh HOST='ftp.inerge.si' USER='slane' PASSWD='D23iprj' FILE='test1.txt' cd /home/janez/programi ftp -n $HOST <<END_SCRIPT quote USER $USER quote PASS $PASSWD put $FILE quit END_SCRIPT exit 0 ---------------------------------------------------------- Opomba: kdaj tudi ftp -n $HOST <<END_SCRIPT nadomestimo z ftp -z nossl -n $HOST <<END_SCRIPT - kaj pomeni nossl? - odpira localport 21 za TCP, glej spodaj nossl action=allow protocol=TCP dir=in localport=21 ---------------------------------------------- Komentar k zgornji proceduri: brez skoka na maticni direktorij (cd /home/janez/programi), ftp ne najde izvornega fajla za prenos, pred put ... pa lahko s cd ... spreminjas tudi ciljni direktorij na ciljnem strezniku, pri passive dodas se za ftp -n se -p, ce prenasa binarne datoteke, pa se binary (put) get some.file [janez@server programi]$ chmod +x ftpinerge.sh - pozenem spodaj [janez@server programi]$ ./ftpinerge.sh ------------------------------------------------------ Se spodnji spodnji nacin, kjer v prenos_iner.sh pozenem pl programcek, ki scrpa podatke v nek fajl in naredi sh proceduro iner_ftp.sh, ki se v prenos_iner.sh pozene takoj za pl programckom. --------------------------- ./prenos_iner.sh #!/bin/sh /home/janez/programi/iner_ftp1.pl chmod +x /home/janez/programi/iner_ftp.sh /home/janez/programi/iner_ftp.sh exit 0 Opomba - iner_ftp.sh je po vsebini enaka proceduri ftpinerge.sh (zgoraj), le da to skripto naredi pl (perl procedura) v crontab pa jo pozenem s spodnjim ukazom ob 8. uri in 59 minut 59 8 * * * /home/janez/programi/prenos_iner.sh >/home/janez/sql_vhodne/prenos_iner.log 2>/home/janez/sql_vhodne/prenos_iner.log kako rocno na ftp server ============== [janez@server programi]$ ftp -p ftp.inerge.si Connected to ftp.energetika-lj.si (212.118.92.43). 220---------- Welcome to Pure-FTPd [privsep] [TLS] ---------- 220-You are user number 1 of 50 allowed. 220-Local time is now 14:37. Server port: 21. 220-This is a private system - No anonymous login 220-IPv6 connections are also welcome on this server. 220 You will be disconnected after 15 minutes of inactivity. Name (ftp.inerge.si:zvicar): slana 331 User temperature OK. Password required Password:D23iprj 230-User temperature has group access to: 50 230 OK. Current directory is / Remote system type is UNIX. Using binary mode to transfer files. ftp> dir 227 Entering Passive Mode (212,118,92,43,118,200) 150 Accepted data connection drwxr-xr-x 2 1001 0 4096 Jan 16 09:48 . drwxr-xr-x 2 1001 0 4096 Jan 16 09:48 .. -rw-r--r-- 1 1001 50 85 Jan 16 09:48 lj_t2007-01-15.txt 226-Options: -a -l 226 3 matches total ftp> ce das na drug streznik ime.x, potem put ime.x vzames binary ali ascii get ime.x ----------------- se nekaj verzij #!/bin/sh HOST='ftp.users.qwest.net' USER='yourid' PASSWD='yourpw' FILE='file.txt' ftp $HOST <<END_SCRIPT user $USER $PASSWD put $FILE quit END_SCRIPT exit 0 ----------------------------------- #!/bin/sh ftp -n << END_SCRIPT open $1 user $2 $3 put $4 get $4 retrieval.$$ bye END_SCRIPT if [ -f retrieval.$$ ] then echo "FTP of $4 to $1 worked" rm -f retrieval.$$ else echo "FTP of $4 did not work" fi -------------------------------------------------------------------------------- #!/bin/sh USER=userid PASSWD=userpw ftp -n f2dev <<SCRIPT user $USER $PASSWD binary get some.file quit SCRIPT --------------------------------------- shell procedura, ki bere iz baze in v zanki zapisuje v datoteke ------------------------- DATUM1=2009-01-01 DATUM2=2009-12-31 leto=2009 ##################################################### export PGUSER="uporabnik" export PGPASSWORD="pipecxx" # # Padavinske postaje # for POSTAJA in 116 122 123 127 167 175 226 228 229 235 237 253 255 258 259 260 262 345 351 475 571 do FILENAME="PAD$leto-$POSTAJA.dat" QUERY="select datum, case when \"p5_padavine\">-1 then trunc(\"p5_padavine\"/10.0,1) else \"p5_padavine\" end as RR from padavine_vhodna where postaja='$POSTAJA' and datum>='$DATUM1'and datum<='$DATUM2' order by datum " psql ime_baze -U uporabnik -h ime_racunalnika -P footer -P null=null -c "$QUERY" >$FILENAME unix2dos $FILENAME done ~ -----prenos_urnih1h.sh-------------------------------------------------------------------- #!/bin/sh #feb. 2012, procedura za prenos urnih podatkov iz xy institucije #na xy server, urni podatki, podrocje /home/podatki/elektro #iz serverja #HOST='xxx.3.yy.120' USER='jakokosi' PASSWD='piscek' #Procedura hkrati brise 10 dni stare fajle iz serverja 'xxx.3.yy.120' #--------------------------procedura se zazene vsako uro v 8 in 52 minuti HOST='xxx.3.yy.120' USER='jakokosi' PASSWD='piscek' datum=$(date +"%Y-%m-%d") # vrne cel yyyy-mm-dd datum minus en dan, mesec=$(date +"%m") # vrne mesec leto=$(date +"%Y") # vrne leto dan=$(date +"%d") # vrne dan leto3=${leto:1:3} #substring zadnja tri mesta leta 2011 ge v 011 leto2=${leto:2:3} #substring zadnja 2 mesta leta 2011 ge v 11 ura=$(date +"%H") # vrne utc uro min=$(date +"%M") # vrne minute #echo $leto3 $leto2 $dan $ura $min # iscem ime datoteke: podatki_201202281350.tpv # podatki_LLLMMDDUU50.tpv # podatki_201202280050.tpv je za 27.02.2012;23:00:00, gric;PADAVINE;27.02.2012;23:00:00;1h;0,0;1 imef="podatki_"$leto$mesec$dan$ura"50.tpv" # format podatki_LLLMMDDUU50.tpv datumd=$(date -d "-10 day" +"%Y-%m-%d") # vrne cel yyyy-mm-dd datum minus 10 dni mesecd=$(date -d "-10 day" +"%m") # vrne mesec letod=$(date -d "-10 day" +"%Y") # vrne leto dand=$(date -d "-10 day" +"%d") # vrne dan imefd="podatki_"$letod$mesecd$dand$ura"50.tpv" # format *LLL.MMM, recimo *011.JAN cd /home/podatki/elektro # ftp -n $HOST 21 <<END_SCRIPT ftp -z nossl -n $HOST <<END_SCRIPT user $USER $PASSWD binary mget $imef quit END_SCRIPT OUT=$? # prebere status ftp # sledi brisanje za deset dni nazaj, ukaz mdelete $imefd if [ $OUT -eq 0 ];then echo "ftp OK" ftp -z nossl -n $HOST <<END_SCRIPT user $USER $PASSWD binary status mdelete $imefd quit END_SCRIPT else echo "ftp Error: "$OUT fi
Stevilo obiskov: .
Za astronomski krožek: ZORKO Vičar
RFC-822: Zorko.Vicar@guest.arnes.si