Synchronizacja przez SSH
Parametr | Opis |
---|---|
|
połączenie przez SSH np. -e "ssh -l ssh-user -p 22" |
|
zastępuje kilka parametrów |
|
wyświetla bieżącą operację |
|
włącza kompresję |
|
kasuje pliki w docelowej lokalizacji jeśli te nie istnieją w źródłowej lokalizacji |
|
testowa synchronizacja |
|
synchronizuje podkatalogi |
|
kopiuje linki symboliczne jako linki symboliczne |
|
zachowuje uprawnienia |
|
zachowuje uprawnienia dla grupy |
|
zachowuje uprawnienia dla użytkownika |
|
zachowuje pliki urządzeń (tylko root) |
cd ~/Nextcloud rsync -avz --delete-before -e ssh Instrukcje/ użytkownik@hostname:/opt/backup-rsync/Instrukcje
cd ~/Książki rsync -avz --delete-before -e ssh . użytkownik@hostname:/opt/backup-rsync/Books
Oprócz oczywistej różnicy pomiędzy tymi dwoma poleceniami, jest jeszcze taka
mniej oczywista, mianowicie znak /
na końcu źródłowego katalogu:
Instrukcje/
, można uznać, że taki zapis oznacza użycie polecenia cd
Instrukcje
a następnie przejść do synchronizacji.
Synchronizacja na zewnętrznym udziale SAMBA plików utworzonych po wybranej dacie
-
Skrypt synchronizuje dane na zewnętrznym udziale sieciowym podłączanym na żądanie.
-
Jest użyte polecenie
find
w celu odnalezienia plików utworzonych po wybranej dacie. -
Dodatkowo skrypt jest zabezpieczony przed kilkukrotnym uruchomieniem, za pomocą pliku PID.
Źródło skryptu:
#!/bin/bash
SKRYPT=$(basename $0)
PIDFILE=/var/run/user/$(id -u)/$SKRYPT.pid
#PID="$(<"$PIDFILE")"
[ -f $PIDFILE ] || echo 9999999 > $PIDFILE
PID_OLD=$(pgrep -F $PIDFILE)
if [ $? -eq 0 ]; then
echo Poprzedni proces skryptu \"$SKRYPT\" nadal działa.
exit
fi
echo $$ > $PIDFILE
umount /mnt/wd-nowy
mount.cifs //10.1.1.223/udzial /mnt/wd-nowy -o user=uzytkownik,passwd=tajne-haslo
mount | grep /mnt/wd-nowy > /dev/null
if [ $? == 1 ]; then
echo Dysk sieciowy nie jest podłączony!
exit
fi
find /home/user/ -newermt "2018-11-10 00:00:00" -type f -print0 | rsync -a -0 -stats --files-from=- / /mnt/wd-nowy
sleep 12
umount /mnt/wd-nowy
rsync z pominięciem wybranych plików lub katalogów
-
do wykluczeń jest używany parametr
--exclude
DATA=$(date +%F-%T)
rsync -avz -e 'ssh -p 12345' /home/samba/ root@192.168.0.222:/home/samba \
--exclude=samba.tar --exclude=backup \
--log-file=rsync-samba-$DATA.log
Date: 2020-10-21T21:51:21+02:00 |