- czasami potrzebujemy jakieś pliki z domowego komputera a jesteśmy np na uczelni
- chcemy skopiować filmy etc a łączymy się w rożny sposób lan/wlan
- mamy desktopa (bądź za poprawnie skonfigurowanym routerem) z zewnętrznym IP
- na desktopie jest zainstalowane i poprawnie skonfigurowane ssh oraz ftp
- mamy laptopa z którym chcemy się łączyć w domu bądź poza via lan/wifi

- na laptopie mamy KDE albo konquerora ( nie wiem czy nautilus będzie działać )
'daemon' dla desktopa
Kod: Zaznacz cały
#!/bin/bash
date > my_ip.tmp
# zdobywanie adresu etherneta
/sbin/ifconfig eth0 | grep -o 'inet addr:[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'| grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' >> /home/nasz_katalog_domowy/my_ip.tmp
# opcjonalne zdobywanie IP, TYLKO gdy mamy router a interfejs desktopa dostaje adresy wewnętrzne
# links -dump www.whatismyip.com | grep "Your IP Address Is" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' >> my_ip.tmp
ftp -n adres_naszego_serwera.domena << KONIEC
user LOGIN HASLO_uwaga_nie_zakodowane!!
bin
prompt off
cd /domains/blablabla/sciezka/do/public_html
lcd /home/nasz_katalog_domowy
put my_ip.tmp
bye
KONIEC
rm /home/nasz_katalog_domowy/my_ip.tmp
należy zwrócic też uwagę w jaki sposób nasz desktop łaczy się z internetem, jeśli jest bramą wystawczy adres ethernety wyjściowego (ma nadany zew IP)
jeśli jednak jest za routerem nalezy 'przekomentować' linki w ip2ftp, UWAGA! dostałem kiedyś bana za sprawdzanie IP co 5 min

następnie dodajemy do cron'a wysyłanie pliku z IP co 9 min na serwer FTP, wartość można zmienić
ip2ftp:
Kod: Zaznacz cały
urbinek@haruko:~$ crontab -e
# m h dom mon dow command
*/9 * * * * /home/nasz_katalog_domowy/skrypty/ip2ftp &> /dev/null
aktywator dla laptopa
files@home:
Kod: Zaznacz cały
#!/bin/bash
clear
# konfiguracja
# dane desktopa
user_name="urbinek"
desktop_lan_ip="192.168.1.1"
desktop_wlan_ip="192.168.0.1"
desktop_zew_ip="http://domain.pl/my_ip.tmp"
# dane laptopa
laptop_eth_iface="eth0"
laptop_lan_ip="192.168.1.19"
laptop_wlan_iface="wlan0"
laptop_wlan_ip="192.168.0.19"
##########################################################
# sprawdzamy połączenie na porcie ethernetowym, będzie się szybko kopiować
eth_ip=`/sbin/ifconfig $eth_iface | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep $laptop_lan_ip`
if [ "$eth_ip" = "$laptop_lan_ip" ] ; then
ping_lan=`ping -c1 $desktop_lan_ip | grep -o '100% packet loss'`
if [ "$ping_lan" != '100% packet loss' ] ; then
echo Wykryto połączenie loklne na "$laptop_eth_iface"!
echo otwieram zasób ftp://$user_name@$desktop_lan_ip
konqueror ftp://$user_name@$desktop_lan_ip
else
# gdy wszystko zawiedzie choiarz krzycz umierając
echo "===============================KOMUNIKAT==============================="
echo " Brak połączenia adresem z $desktop_lan_ip"
echo " Interfejs $laptop_lan_iface otrzymał poprawny adres $laptop_lan_ip"
echo " Sprawdź czy:"
echo " - połączenie jest aktywne - połącz ponownie z siecią"
echo " - kabelek jest na miejscu - wetknij go spowrotem"
echo " - serwer ftp jest poprawnie skonfigurowany a porty odblokowane"
fi
exit 0
fi
# sprawdzamy połączenie na porcie wifi, od biedy może być jak sie kabelka wpinać nie chce :P
wlan_ip=`/sbin/ifconfig $wlan_iface | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep $laptop_wlan_ip`
if [ "$wlan_ip" = "$laptop_wlan_ip" ] ; then
ping_lan=`ping -c1 $desktop_wlan_ip | grep -o '100% packet loss'`
if [ "$ping_lan" != '100% packet loss' ] ; then
echo Wykryto połączenie loklne na "$laptop_wlan_iface"!
echo otwieram zasób ftp://$user_name@$desktop_wlan_ip
konqueror ftp://$user_name@$desktop_wlan_ip
else
# gdy wszystko zawiedzie choiarz krzycz umierając
echo "===============================KOMUNIKAT==============================="
echo " Brak połączenia adresem z $desktop_wlan_ip"
echo " Interfejs $laptop_wlan_iface otrzymał poprawny adres $laptop_wlan_ip"
echo " Sprawdź czy:"
echo " - karta sieciowa jest wyłączona - włącz ją spowrotem"
echo " - połączenie jest aktywne - połącz ponownie z siecią"
echo " - sieć wifi jest w zasięgu - przenieś laptopa bliżej nadajnika"
echo " - sieć wifi jest aktywna - sprawdź nadajnik"
echo " - serwer ftp jest poprawnie skonfigurowany a porty odblokowane"
fi
exit 0
fi
# jak połączenia lokalne zawiodły sprawdzamy czy wogóle jest internet
# jeślu jest znaczy, że jesteśmy poza domem i chcemy dogrzebać się zdalnie
# z pomocą przychodzi nam google.pl, mozna zastąpić każdym innym *pewnym* adresem - najlepiej IP
ping_google=`ping -c1 194.9.94.86 | grep -o '100% packet loss'`
if [ "$ip_google" != '100% packet loss' ] ; then
# pobieramy i przetwarzamy zewnętrzny adres IP aktualizowany przez desktopa
wget $desktop_zew_ip -O ~/.my_ip.tmp
ip_data=`head -n 1 ~/.my_ip.tmp`
ip_home=`cat ~/.my_ip.tmp | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'`
clear
echo Ostatnia aktualizacja: $ip_data
echo Adres IP: $ip_home
# tutaj łączymy się z zewnątrz i przydało by się jakieś szyfrowanko, sftp w zupełności wystarczy ale
# prędkości są wolniejsze o mniej więcej 40% - sprawdzałem w sieci lokalnej 100Mbps
konqueror sftp://$user_name@$ip_home
else
# gdy wszystko zawiedzie chociaż krzycz umierając
echo "=========================KOMUNIKAT=+======================="
echo " Brak połączenia z siecią lokalną oraz Internetem!"
echo " Upewnij się czy wszystko jest poprawnie skonfigurowane..."
echo " ...a kabelki w odpowiednich dziurkach ;)"
fi
należy podać wszystkie wymagane dane (fajnie by było skonfigurować DHCP w sieci lokalnej zeby przydzielał te same adresy, inaczej należy z zmodyfikować skrypt)
oba skrypty wykonujemy jako zwykły user, nietrzeba praw roota,
files@home można wywołać w konsoli bądź utworzyć aktywator
jak coś sobie przypomnę to dopisze
