jablonka.czprosek.czf

czf4bfu.prosek.czf

Subversion Repositories:
[/] [zal/] [get-rsync.sh] - Blame information for rev 8

 

Line No. Rev Author Line
11simandl#!/bin/sh
2# stahovatko czf4bfu souboru ze serveru podle zadanych zdroju
3# pokousi se i o rekurzivni pristup a stahnuti jinak nedostupnych
4# baliku
5 
6# sources je soubor s IP na jednom radku
7SOURCES="${1:-$HOME/czf4bfu/zdroje.txt}"
8# domeny ve kterych budu hledat czf4bfu host, jeho IP pouziju.
9DOMENY="${2:-$HOME/czf4bfu/domeny.txt}"
10 
11# parametry pro wget
12DSTDIR="/home/www/html/czf4bfu"
13 
14# parametry wgetu.
15# -N zapina overovani posledni modifikace, bohuzel dost serveru
16# to nepodporuje nebo nema zapnute. Pripadne vypnout a nahradit
17# -nc, coz zajisti pri kazdem pokusu prepsani stareho
18WGETPARAMS="-r -l 0 -N -np -nd -t 3 -A '.txt,.deu' -P $DSTDIR"
19 
20TMPFILE="/tmp/getall-czf-$RANDOM"
21HOST=host
22RSYNC=rsync
23RSYNCPARAMS="-r "
24SERVICE="rsync"
25 
26function getbyip()
27{
28IP=$1
29 # prvni zkusim soubor primo z tou IP.
30 # momentalne nutne u czela.czf
31 $RSYNC $RSYNCPARAMS rsync://$IP/czf4bfu "$DSTDIR"
32}
33 
34function getdnsip()
35{
36DOMAIN=$1
37# Potom prihodim seznamy dle A recordu
38# je nutne pridat czf4bfu v parametru
39 $HOST $DOMAIN | sed \
40 -e "/has address/ ! d" \
41 -e "s/^.*has address \([[:digit:].]\+\)[[:space:]]*$/\1/"
42}
43 
44function getsrvip()
45{
46# Ziskani pomoci SRV zaznamu
47# trosku komplikace je, ze SRV vraci zaznam hostname, ne IP, takze jeste
48# jednou resolve.
49DOMAIN=$1
50 host -t SRV _$SERVICE._tcp.czf4bfu.$DOMAIN | sed \
51 -e "/SRV [[:digit:]]\+ [[:digit:]]\+ [[:digit:]]\+/ ! d" \
52 -e "s/^.*SRV [[:digit:]]\+ [[:digit:]]\+ [[:digit:]]\+ \([[:alnum:].-]\+\)[[:space:]]*$/\1/" | \
53 while read HOSTNAME; do
54 getdnsip $HOSTNAME
55 done
56}
57 
58echo -n > "$TMPFILE"
59 
60# Jako prvni zkus najit zdroje v defaultni domene
61# Pozor. Pokud nebude fungovat timestamp, je lepsi dat svuj lokalni
62# DEU soubor jako read-only pro toho kdo spousti tento skript, jinak by
63# mohl prepsat deu soubor pro tento stroj.
64getdnsip czf4bfu >> $TMPFILE
65 
66# Napred zkusime hledani podle domen zadanych v souboru
67[ -f "$DOMENY" ] && cat "$DOMENY" | while read DOMAIN; do
68 echo "Domena: $DOMAIN"
69 getsrvip $DOMAIN >> "$TMPFILE"
70# Potom prihodim seznamy dle A recordu
71# jenom SRV zatim
72# getdnsip czf4bfu.$DOMAIN >> "$TMPFILE"
73done
74 
75# ted pridam do seznamu rucne zadane IP
76# rsync budu delat z SRV jenom
77#cat "$SOURCES" >> "$TMPFILE"
78 
79# seradim a vyhazu duplikaty
80IPS=$(cat "$TMPFILE" | sort -u )
81 
82echo "Nalezene IP:"
83echo "$IPS"
84 
85# a ted uz jenom stahnu
86for IP in $IPS; do
87 getbyip $IP
88done
89 

Powered by WebSVN 2.2.1