czwartek, 14 stycznia 2016

Przenoszenie danych/migracja z uwzględnieniem hardlinków i właścicieli

Trzeba zmigrować serwer, lub przenieść dane (wyrównać) ze starej maszyny na nową. Podczas kopiowania wychodzi na maszynie docelowej więcej objętościowo danych, niż na źródłowej. Okazuje się, że winnymi są hard linki w systemie plików. Standardowo rsync lub scp traktuje hard linki jako pliki. Pomocny w kopiowaniu tego lub nawet do backupu przychodzi rsync. Za pomocą polecenia skopiujemy hard linki jako powiązania, a nie jako osobny plik:

rsync -az -H --delete --progress --numeric-ids /sciezka_kat/folderXYZ user@serwerzdalny:/sciezka_kat/

gdzie:

-a jest używane w trybie archiwizującym. Na stronie man jest ona wyjaśniona jako “sposób na zrobienie kopii zapasowej rekursywnie i na zachowanie 'prawie' wszystkiego". Wspomina się jeszcze, że nie są zachowane hard linki ze względu na złożoność przetwarzania.
-z jest używany, aby kompresować dane, które musi “przenieść” lub skopiować, opcja czyni
proces kopiowania szybszym, ponieważ dane przenoszone są mniejsze niż ich rzeczywisty rozmiar.

-H kopiuje hard linki jako hard linki
--delete jest używane, aby usunąć docelowe pliki, które już nie istnieją na źródłowym systemie. W tym przypadku utrzymujemy lustrzaną kopie pomiędzy kopiowanymi folderami

--numeric-ids kopiuje grupy i użytkowników do plików i katalogów
--progress pokazuje postęp kopiowania


Kopiowanie może potrwać trochę wolniej niż standardowo, lecz mamy skopiowane katalogi 1:1 i nie mnożą nam się nadprogramowe gigabajty na dysku. A jeśli mamy wcześniej skopiowany "spuchnięty" docelowy folder, to to nam posprząta :)

wtorek, 12 stycznia 2016

Postfix przekierowanie maili od danego nadawcy do innego odbiorcy

Pojawiła się potrzeba, żeby maile wysyłane przez xyz@nadawca.jakaś.domena.pl trafiały tylko i wyłącznie na adres abc@odbiorca.mojadomena.pl. Potrzeba potrzebą, ale chciałem, żeby było to zrobione w najprostszy sposób, bez zbyt dużej kombinacji i żeby na przyszłość można dopisywać więcej takich wyjątków. Znalazłem kilka sposobów, lecz tylko jeden spełnił moje wymagania.
Zaczynamy od dodania wpisu (ew sprawdzenia czy taki wpis już jest) do pliku main.cf:

nano /etc/posttfix/main.cf

smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access

tworzymy/modyfikujemy plik sender_access

touch /etc/postfix/sender_access
nano /etc/postfix/sender access

dodajemy wpis do sender_access:

xyz@nadawca.jakaś.domena.pl redirect abc@odbiorca.mojadomena.pl

wydajemy polecenia:
postmap  /etc/postfix/sender_access
/etc/init.d/postfix restart


Testujemy czy działa. Jeśli przyjdzie taka potrzeba dodajemy następne wpisy w pliku /etc/postfix/sender_access