Rozpakowanie przez ssh ze zdalnej maszyny
Rozpakować ze zdalnej maszyny na dysk lokalny można zrobić tak:
ssh login@host "cat plik_backup.tar.gz" | tar xvzf -
Kopiowanie używając rsync
Synchronizowanie katalogu ze zdalnego serwera do dysk lokalny:
rsync -ave ‘ssh -p22′ –del skad@serwer:/katalog /docelowy/katalog
Kopiowanie całego systemu plików bez /proc:
rsync -ave ‘ssh -p22′ –del –exclude ‘/proc’ skad@serwer:/ /docelowy/katalog
Opcja –del powoduje, że pliki których już nie ma w źródle zostaną usunięte.
Jak podzielić mysqldump -all na poszczególne bazy?
Komendą mysqldump z parametrem –all-databases można zrobić zrzut wszystkich baz na serwerze do jednego pliku. Powstaje zazwyczaj wielki plik, który ciężko przeglądać. Jak wyciągnąć z niego poszczególne bazy? Używając komendy csplit można zrobić to tak:
csplit –f "baza_" mysqlbackup0101.sql "/^CREATE DATABASE /" {*}
po wykonaniu takej komendy powstanie osobny plik baza_XX dla każdej bazy z pliku źródłowego.
Przykłady wykorzystania polecenia find
Skasowanie wszystkich plików starszych niż 15 dni (21600=60*24*15)
find /mnt/backup/backup* -cmin +21600 -exec rm -r {} \;
Zmiana we wszystkich plikach index.php w podkatalogach $z na _$GET['z'] (czyli poprawienie użycia zmiennej przy ustawieniu na serwerze register_globals=off)
find */index\.php -exec sed -i 's/$z/$_GET['z']/' {} \;
