środa, 30 marca 2011

SOCKS proxy via SSH

Przydatne przy omijaniu limitów pobierania z różnych rapid-wynalazków i do kilku innych celów.


ssh -D 12345 myuser@remote_ssh_server


Przykładowe ustawienie w Chrome:

Preferencje->Dla zaawansowanych->Ustawienia Proxy->Ręczne ustawienie Proxy
Tam ustawiamy hosta i port. W tym wypadku będzie to odpowiednio: localhost, 12345.

wtorek, 29 marca 2011

Dostęp do repozytorium Git'a na niestandardowym porcie SSH

Post z serii: "Dziś pytanie - dziś odpowiedź"

Wbrew pozorom by rozwiązać tytułowy problem nie musimy zmieniać zanadto konfiguracji gita. Rozwiązaniem natomiast jest wyedytowanie pliku .ssh/config.
Przykładowa konfiguracja:


Host MyRepo
HostName myrepo.pl
Port 666
User myuser


Wtedy .git/config wygląda np. tak:


[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = MyRepo:RepoName
[branch "master"]
remote = origin
merge = refs/heads/master


MyRepo - Etykieta której użyliśmy w pliku .ssh/config
RepoName - Zdalny folder z repozytorium Git'a

poniedziałek, 28 marca 2011

Szybka synchronizacja danych za pomocą RSync'a i sshfs

Przykładowy skrypt nie wymagający wielkiego komentarza:


#!/bin/sh
sshfs -p 666 user@farmachine.pl:/home/shark /home/shark/fardata/
rsync -rvvl --exclude-from exclude.txt /home/shark/LOCAL-FOLDER/ /home/shark/fardata/REMOTE-FOLDER
sudo umount /home/shark/fardata


Krótkie wyjaśnienie:

1.Za pomocą systemu plików sshfs montujemy zdalny zasób na w lokalnym folderze
2.Za pomocą rsync'a(jak sama nazwa wskazuje) synchronizujemy zasoby(tu ważne by rozumieć, że kopiowanie następuje od lewa do prawa. Kolejność argumentów jak przy standardowym 'cp')
3.Odmontowujemy, zamontowany wcześniej zasób
4.Koniec ;)

Opcje:

r - kopiowanie rekurencyjne (Rekurencja - patrz: rekurencja ;))
v - verbose
l - kopiuj symlinki jako symlinki
exclude-from - wyłączenie wybranych plików ze śledzenia przez rsync'a(w tym wypadku wystarczy wypisać te pliki w osobnych liniach w pliku exclude.txt)

P.S. By móc korzystać z sshfs należy posiadać FUSE'a i pakiety zależne(apt-get sam załatwia sprawę)

Dla zainteresowanych: man sshfs, man rsync