From f68a547e90fd028c75b97369095b2383fe2aed8a Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Sat, 25 Dec 2021 15:50:03 -0500 Subject: [PATCH 1/8] New translations 01_rsync_overview.md (Italian) --- docs/books/learning_rsync/01_rsync_overview.it.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/books/learning_rsync/01_rsync_overview.it.md b/docs/books/learning_rsync/01_rsync_overview.it.md index dc8539d780..e55ef607ee 100644 --- a/docs/books/learning_rsync/01_rsync_overview.it.md +++ b/docs/books/learning_rsync/01_rsync_overview.it.md @@ -27,7 +27,7 @@ Su un server, ho eseguito il backup della prima partizione nella seconda partizi Alcune persone diranno, non posso usare il comando `tar` o `cp` sul primo server e inviarlo al secondo server tramite `scp` o `sftp`? -In un ambiente di produzione, la quantità di dati è relativamente elevata. Prima di tutto, `tar` o `cp` consuma molto tempo e occupa le prestazioni del sistema. La trasmissione tramite `scp` o `sftp` occupa anche un sacco di larghezza di banda di rete, che non è consentito nell'ambiente di produzione reale. In secondo luogo, questi comandi o strumenti devono essere inseriti manualmente dall'amministratore e devono essere combinati con il crontab dell'attività pianificata. Tuttavia, il tempo impostato da crontab non è facile da cogliere, e non è opportuno eseguire il backup dei dati se il tempo è troppo breve o troppo lungo. +In un ambiente di produzione, la quantità di dati è relativamente elevata. Prima di tutto, `tar` o `cp` consumano molto tempo e occupano le prestazioni del sistema. La trasmissione tramite `scp` o `sftp` occupa anche un sacco di larghezza di banda di rete, che non è consentito nell'ambiente di produzione reale. In secondo luogo, questi comandi o strumenti devono essere inseriti manualmente dall'amministratore e devono essere combinati con il crontab dell'attività pianificata. Tuttavia, il tempo impostato da crontab non è facile da cogliere, e non è opportuno eseguire il backup dei dati se il tempo è troppo breve o troppo lungo. Pertanto, è necessario un backup dei dati nell'ambiente di produzione che deve soddisfare i seguenti requisiti: From 8937886bb19c1c5e48303e2b8c5875bc48ffc984 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Sat, 25 Dec 2021 15:50:06 -0500 Subject: [PATCH 2/8] New translations 02_rsync_demo01.md (Italian) --- .../learning_rsync/02_rsync_demo01.it.md | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 docs/books/learning_rsync/02_rsync_demo01.it.md diff --git a/docs/books/learning_rsync/02_rsync_demo01.it.md b/docs/books/learning_rsync/02_rsync_demo01.it.md new file mode 100644 index 0000000000..8cc219b737 --- /dev/null +++ b/docs/books/learning_rsync/02_rsync_demo01.it.md @@ -0,0 +1,144 @@ +--- +title: rsync demo 01 +author: tianci li +contributors: Steven Spencer, Franco Colussi +update: 2021-12-25 +--- + +# Premessa + +`rsync` deve eseguire l'autenticazione dell'utente prima della sincronizzazione dei dati. **Ci sono due metodi di protocollo per l'autenticazione: protocollo SSH e protocollo rsync (la porta predefinita del protocollo rsync è la 873)** + +* Metodo di verifica del protocollo SSH: usa il protocollo SSH come base per l'autenticazione dell'identità utente (cioè, utilizza l'utente del sistema e la password di GNU/Linux stesso per la verifica), e quindi esegue la sincronizzazione dei dati. +* metodo di verifica del protocollo rsync login: usa il protocollo rsync per l'autenticazione dell'identità utente (utenti di sistema non GNU/Linux, simili agli utenti virtuali vsftpd), e quindi esegue la sincronizzazione dei dati. + +Prima della dimostrazione specifica della sincronizzazione rsync, è necessario utilizzare il comando `rsync`. In Rocky Linux 8, il pacchetto rpm rsync è installato per impostazione predefinita, e la versione è la 3.1.3-12, come segue: + +```bash +[root@Rocky ~]# rpm -qa|grep rsync +rsync-3.1.3-12.el8.x86_64 +``` + +```txt +Basic format: rsync [options] original location target location +Commonly used options: +-a: archive mode, recursive and preserves the attributes of the file object, which is equivalent to -rlptgoD (without -H, -A, -X) +-v: Display detailed information about the synchronization process +-z: compress when transferring files +-H: Keep hard link files +-A: retain ACL permissions +-X: retain chattr permissions +-r: Recursive mode, including all files in the directory and subdirectories +-l: still reserved for symbolic link files +-p: Permission to retain file attributes +-t: time to retain file attributes +-g: retain the group belonging to the file attribute (only for super users) +-o: retain the owner of the file attributes (only for super users) +-D: Keep device files and other special files +``` + +Uso personale dell'autore: `rsync -avz posizione originale posizione di destinazione` + +## Descrizione dell'Ambiente + +| Elemento | Descrizione | +| --------------------- | ---------------- | +| Rocky Linux 8(Server) | 192.168.100.4/24 | +| Fedora 34(client) | 192.168.100.5/24 | + +È possibile utilizzare Fedora 34 per caricare e scaricare + +```mermaid +graph LR; +RockyLinux8-->|pull/download|Fedora34; +Fedora34-->|push/upload|RockyLinux8; +``` + +È inoltre possibile utilizzare Rocky Linux 8 per caricare e scaricare + +```mermaid +graph LR; +RockyLinux8-->|push/upload|Fedora34; +Fedora34-->|pull/download|RockyLinux8; +``` + +## Dimostrazione basata sul protocollo SSH + +!!! tip "Attenzione!" Qui, sia Rocky Linux 8 che Fedora 34 utilizzano l'utente root per accedere. Fedora 34 è il client e Rocky Linux 8 è il server. + +### pull/scarica + +Dato che si basa sul protocollo SSH, creiamo prima un utente nel server: + +```bash +[root@Rocky ~]# useradd testrsync +[root@Rocky ~]# passwd testrsync +``` + +Sul lato client, lo tiriamo/scarichiamo e il file sul server è /rsync/aabbcc + +```bash +[root@fedora ~]# rsync -avz testrsync@192.168.100.4:/rsync/aabbcc /root +testrsync@192.168.100.4 ' s password: +receiving incremental file list +aabbcc +sent 43 bytes received 85 bytes 51.20 bytes/sec +total size is 0 speedup is 0.00 +[root@fedora ~]# cd +[root@fedora ~]# ls +aabbcc +``` +Trasferimento effettuato con successo. + +!!! tip "Attenzione" Se la porta SSH del server non è quella predefinita 22, puoi specificare la porta in questo modo---`rsync -avz -e 'ssh -p [port]'`. + +### push/carica + +```bash +[root@fedora ~]# touch fedora +[root@fedora ~]# rsync -avz /root/* testrsync@192.168.100.4:/rsync/ +testrsync@192.168.100.4 ' s password: +sending incremental file list +anaconda-ks.cfg +fedora +rsync: mkstemp " /rsync/.anaconda-ks.cfg.KWf7JF " failed: Permission denied (13) +rsync: mkstemp " /rsync/.fedora.fL3zPC " failed: Permission denied (13) +sent 760 bytes received 211 bytes 277.43 bytes/sec +total size is 883 speedup is 0.91 +rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1330) [sender = 3.2.3] +``` + +**Richiesta di autorizzazione negata, come gestirla?** + +Prima controlla i permessi della directory /rsync/. Ovviamente, non c'è alcun permesso "w". Possiamo utilizzare `setfacl` per dare il permesso: + +```bash +[root@Rocky ~ ] # ls -ld /rsync/ +drwxr-xr-x 2 root root 4096 November 2 15:05 /rsync/ +``` + +```bash +[root@Rocky ~ ] # setfacl -mu:testrsync:rwx /rsync/ +[root@Rocky ~ ] # getfacl /rsync/ +getfacl: Removing leading ' / ' from absolute path names +# file: rsync/ +# owner: root +# group: root +user::rwx +user:testrsync:rwx +group::rx +mask::rwx +other::rx +``` + +Prova di nuovo, successo! + +```bash +[root@fedora ~ ] # rsync -avz /root/* testrsync@192.168.100.4:/rsync/ +testrsync@192.168.100.4 ' s password: +sending incremental file list +anaconda-ks.cfg +fedora +sent 760 bytes received 54 bytes 180.89 bytes/sec +total size is 883 speedup is 1.08 +``` From 65b2b4e6edd7fe1826b7e5ca6bff4876f67079be Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Sat, 25 Dec 2021 17:02:22 -0500 Subject: [PATCH 3/8] New translations index.md (Italian) --- docs/books/index.it.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/books/index.it.md b/docs/books/index.it.md index 7ad7b972e9..698cde52f7 100644 --- a/docs/books/index.it.md +++ b/docs/books/index.it.md @@ -1,10 +1,11 @@ --- -title: Books Home -author: Steven Spencer -contributors: @fromoz +title: Home Libri +author: Spencer Steven +contributors: '@fromoz, Franco Colussi' --- -# Libri didattici su Rocky Linux + +# Rocky Linux Libri Didattici Hai trovato la sezione **Libri** della documentazione. È qui che viene mantenuta la documentazione più dettagliata. Questi documenti sono suddivisi in sezioni o "capitoli" per facilitarti la consultazione attraverso di essi, al tuo ritmo e tenendo traccia dei tuoi progressi. Questi documenti sono stati creati da persone come te, con una passione per determinati argomenti. -Vuoi provare di tua mano a scrivere un'aggiunta a questa sezione? È FANTASTICO! Semplicemente unisciti alla conversazione sul [Mattermost Documentation channel](https://chat.rockylinux.org/rocky-linux/channels/documentation) e ti aiuteremo a trovare la tua strada. +Vuoi provare di tua mano a scrivere un'aggiunta a questa sezione? È FANTASTICO! Unisciti alla conversazione sul canale [Mattermost Documentation](https://chat.rockylinux.org/rocky-linux/channels/documentation) e ti aiuteremo sulla tua strada. From 2a03fb18f8889d99e9ec7b0eb602f22bd9d4a11e Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Sat, 25 Dec 2021 17:02:23 -0500 Subject: [PATCH 4/8] New translations 03_rsync_demo02.md (Italian) --- .../learning_rsync/03_rsync_demo02.it.md | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 docs/books/learning_rsync/03_rsync_demo02.it.md diff --git a/docs/books/learning_rsync/03_rsync_demo02.it.md b/docs/books/learning_rsync/03_rsync_demo02.it.md new file mode 100644 index 0000000000..db48b02a6d --- /dev/null +++ b/docs/books/learning_rsync/03_rsync_demo02.it.md @@ -0,0 +1,127 @@ +--- +title: rsync demo 02 +author: tianci li +contributors: Steven Spencer, Franco Colussi +update: 2021-12-25 +--- + +# Dimostrazione basata sul protocollo rsync +In vsftpd, ci sono utenti virtuali (utenti impersonali personalizzati dall'amministratore) perché non è sicuro usare utenti anonimi e utenti locali. Sappiamo che un server basato sul protocollo SSH deve garantire che ci sia un sistema di utenti. Quando ci sono molti requisiti di sincronizzazione, può essere necessario creare molti utenti. Questo ovviamente non soddisfa gli standard di gestione e manutenzione GNU/Linux (più utenti, più insicuro), in rsync, per motivi di sicurezza, c'è un metodo di autenticazione il protocollo rsync. + +**Come si fa?** + +Basta scrivere i parametri e i valori corrispondenti nel file di configurazione. In Rocky Linux 8, è necessario creare manualmente il file /etc/rsyncd.conf. + +```bash +[root@Rocky ~]# touch /etc/rsyncd.conf +[root@Rocky ~]# vim /etc/rsyncd.conf +``` + +Alcuni parametri e valori di questo file sono i seguenti, [ qui ](04_rsync_configure.md) ci sono più descrizioni dei parametri: + +| Elemento | Descrizione | +| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| address = 192.168.100.4 | L'indirizzo IP dove rsync è in ascolto di default | +| port = 873 | porta rsync di ascolto predefinita | +| pid file = /var/run/rsyncd.pid | Posizione del file del pid del processo | +| log file = /var/log/rsyncd.log | Posizione del file del registro | +| [share] | Nome condiviso | +| comment = rsync | Osservazioni e informazioni sulla descrizione | +| path = /rsync/ | Posizione del percorso di sistema in cui si trova | +| read only = yes | sì significa solo leggere, non leggere e scrivere | +| dont compress = \*.gz \*.gz2 \*.zip | Quali tipi di file non comprimere | +| auth users = li | Abilita gli utenti virtuali e definisci come viene chiamato un utente virtuale. Devi crearlo da solo | +| secrets file = /etc/rsyncd_users.db | Usato per specificare la posizione del file password dell'utente virtuale, che deve terminare in .db. Il formato del contenuto del file è "Nome utente: Password", uno per riga | + +!!! tip "Attenzione!" Il permesso del file password deve essere 600 + +Scrivi il contenuto del file su /etc/rsyncd.confe scrivi il nome utente e la password su /etc/rsyncd_users.db, il permesso è 600 + +```bash +[root@Rocky ~]# cat /etc/rsyncd.conf +address = 192.168.100.4 +port = 873 +pid file = /var/run/rsyncd.pid +log file = /var/log/rsyncd.log +[share] +comment = rsync +path = /rsync/ +read only = yes +dont compress = *.gz *.bz2 *.zip +auth users = li +secrets file = /etc/rsyncd_users.db +[root@Rocky ~]# ll /etc/rsyncd_users.db +-rw------- 1 root root 9 November 2 16:16 /etc/rsyncd_users.db +[root@Rocky ~]# cat /etc/rsyncd_users.db +li:13579 +``` + +Potrebbe essere necessario `dnf -y install rsync-daemon` prima di poter avviare il servizio: `systemctl start rsyncd.service` + +```bash +[root@Rocky ~]# systemctl start rsyncd.service +[root@Rocky ~]# netstat -tulnp +Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name +tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 691/sshd +tcp 0 0 192.168.100.4:873 0.0.0.0:* LISTEN 4607/rsync +tcp6 0 0 :::22 :::* LISTEN 691/sshd +udp 0 0 127.0.0.1:323 0.0.0.0:* 671/chronyd +udp6 0 0 ::1:323 :::* 671/chronyd +``` + +## pull/scarica + +Crea un file nel server per la verifica: `[root@Rocky]# touch /rsync/rsynctest.txt` + +Il client fa quanto segue: + +```bash +[root@fedora ~]# rsync -avz li@192.168.100.4::share /root +Password: +receiving incremental file list +./ +rsynctest.txt +sent 52 bytes received 195 bytes 7.16 bytes/sec +total size is 883 speedup is 3.57 +[root@fedora ~]# ls +aabbcc anaconda-ks.cfg fedora rsynctest.txt +``` + +successo! Oltre alla scrittura precedente basata sul protocollo rsync, puoi anche scrivere così: `rsync://li@10.1.2.84/share` + +## push/carica + +```bash +[root@fedora ~]# touch /root/fedora.txt +[root@fedora ~]# rsync -avz /root/* li@192.168.100.4::share +Password: +sending incremental file list +rsync: [sender] read error: Connection reset by peer (104) +rsync error: error in socket IO (code 10) at io.c(784) [sender = 3.2.3] +``` + +Vieni informato che l'errore di lettura è relativo al "read only = yes" del server. Cambialo in "no" e riavvia il servizio `[root@Rocky ~]# systemctl restart rsyncd.service` + +Prova di nuovo, ti viene negato il permesso: + +```bash +[root@fedora ~]# rsync -avz /root/* li@192.168.100.4::share +Password: +sending incremental file list +fedora.txt +rsync: mkstemp " /.fedora.txt.hxzBIQ " (in share) failed: Permission denied (13) +sent 206 bytes received 118 bytes 92.57 bytes/sec +total size is 883 speedup is 2.73 +rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1330) [sender = 3.2.3] +``` + +Il nostro utente virtuale qui è li, che viene mappato all'utente di sistema nobody per impostazione predefinita. Naturalmente, è possibile cambiarlo in altri utenti del sistema. In altre parole, nobody non ha il permesso di scrittura nella directory /rsync/. Naturalmente, possiamo usare `[root@Rocky ~]# setfacl -mu:nobody:rwx /rsync/` , riprovare, e avere successo. + +```bash +[root@fedora ~]# rsync -avz /root/* li@192.168.100.4::share +Password: +sending incremental file list +fedora.txt +sent 206 bytes received 35 bytes 96.40 bytes/sec +total size is 883 speedup is 3.66 +``` From c155162fe9415f325a595c3842383c503ce4e6e9 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Sat, 25 Dec 2021 17:02:25 -0500 Subject: [PATCH 5/8] New translations 04_rsync_configure.md (Italian) --- .../learning_rsync/04_rsync_configure.it.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs/books/learning_rsync/04_rsync_configure.it.md diff --git a/docs/books/learning_rsync/04_rsync_configure.it.md b/docs/books/learning_rsync/04_rsync_configure.it.md new file mode 100644 index 0000000000..327f42af12 --- /dev/null +++ b/docs/books/learning_rsync/04_rsync_configure.it.md @@ -0,0 +1,31 @@ +--- +title: file di configurazione rsync +author: tianci li +update: 2021-12-25 +--- + +# /etc/rsyncd.conf + +Nel precedente articolo [ rsync demo 02 ](03_rsync_demo02.md) abbiamo introdotto alcuni parametri di base. Questo articolo è per integrare altri parametri. + +| Parametri | Descrizione | +| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| fake super = yes | sì significa che non è necessario che il demone venga eseguito come root per memorizzare gli attributi completi del file. | +| uid = | | +| gid = | Due parametri sono utilizzati per specificare l'utente e il gruppo utilizzati per trasferire i file quando si esegue il demone rsync come root. Il valore predefinito è nobody | +| use chroot = yes | Se la directory radice deve essere bloccata prima della trasmissione, sì sì, no no. Al fine di aumentare la sicurezza, rsync yes di default. | +| max connections = 4 | Il numero massimo di connessioni ammesse, il valore predefinito è 0, il che significa che non ci sono restrizioni | +| lock file = /var/run/rsyncd.lock | Il file di blocco specificato, che è associato al parametro "max connection" | +| exclude = lost+found/ | Escludi directory che non devono essere trasferite | +| transfer logging = yes | Indica se abilitare il formato di log simile a ftp per registrare i caricamenti e i download di rsync | +| timeout = 900 | Specifica il periodo di timeout. Se nessun dato viene trasmesso entro il tempo specificato, rsync uscirà direttamente. L'unità è secondi, il valore predefinito è 0 significa mai time out | +| ignore nonreadable = yes | Indica se ignorare i file a cui l'utente non ha diritti di accesso | +| motd file = /etc/rsyncd/rsyncd.motd | Usato per specificare il percorso del file del messaggio. Per impostazione predefinita, non c'è un file motd. Questo messaggio è il messaggio di benvenuto visualizzato quando l'utente accede. | +| hosts allow = 10.1.1.1/24 | Usato per specificare a quali client IP o segmento di rete è consentito accedere. È possibile compilare l'ip, il segmento di rete, il nome dell'host, l'host sotto il dominio e separare i multipli con gli spazi. Consenti a tutti di accedere per impostazione predefinita | +| hosts deny = 10.1.1.20 | A quali client Ip o segmento di rete specificati dall'utente non è consentito accedere. Se gli host consentono e gli host negano lo stesso risultato corrispondente, il client non può accedervi alla fine. Se l'indirizzo del client non è né nel host allow né nel host deny, il client è autorizzato ad accedere. Per impostazione predefinita, questo parametro non esiste | +| auth users = li | Abilita utenti virtuali, più utenti sono separati da virgole nello stato inglese | +| syslog facility = daemon | Definisce il livello del registro di sistema. Questo valore può essere riempito con: auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, syslog, user, uucp, local0, local1, local2 local3, local4, local5, local6 and local7. Il valore predefinito è daemon | + +## Configurazione raccomandata + +![ photo ](images/rsync_config.jpg) From 50df47237e35fd36552c1dc6699f333461c125b1 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Sun, 26 Dec 2021 06:43:35 -0500 Subject: [PATCH 6/8] New translations 05_rsync_authentication-free_login.md (Italian) --- .../05_rsync_authentication-free_login.it.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 docs/books/learning_rsync/05_rsync_authentication-free_login.it.md diff --git a/docs/books/learning_rsync/05_rsync_authentication-free_login.it.md b/docs/books/learning_rsync/05_rsync_authentication-free_login.it.md new file mode 100644 index 0000000000..c238dc6c3f --- /dev/null +++ b/docs/books/learning_rsync/05_rsync_authentication-free_login.it.md @@ -0,0 +1,96 @@ +--- +title: rsync login senza password +author: tianci li +contributors: Steven Spencer, Franco Colussi +update: 2021-12-26 +--- + +# Prefazione + +Da [rsync Breve Descrizione](01_rsync_overview.md) sappiamo che rsync è uno strumento di sincronizzazione incrementale. Ogni volta che viene eseguito il comando `rsync`, i dati possono essere sincronizzati una volta, ma i dati non possono essere sincronizzati in tempo reale. Come farlo? + +Con inotify-tools, questo strumento può realizzare la sincronizzazione unidirezionale in tempo reale. Poiché si tratta di sincronizzazione dati in tempo reale, il prerequisito è quello di accedere senza autenticazione con password. + +**Indipendentemente dal fatto che si tratti di protocollo rsync o protocollo SSH, entrambi possono ottenere l'accesso all'autenticazione senza password.** + +## Accesso all'autenticazione senza password del protocollo SSH + +Innanzitutto, genera una chiave pubblica e una coppia di chiavi private sul client e continua a premere Invio dopo aver digitato il comando. La coppia di chiavi è salvata nella directory /root/.ssh/ + +```bash +[root@fedora ~]# ssh-keygen -t rsa -b 2048 +Generating public/private rsa key pair. +Enter file in which to save the key (/root/.ssh/id_rsa): +Enter passphrase (empty for no passphrase): +Enter same passphrase again: +Your identification has been saved in /root/.ssh/id_rsa +Your public key has been saved in /root/.ssh/id_rsa.pub +The key fingerprint is: +SHA256: TDA3tWeRhQIqzTORLaqy18nKnQOFNDhoAsNqRLo1TMg root@fedora +The key's randomart image is: ++---[RSA 2048]----+ +|O+. +o+o. .+. | +|BEo oo*....o. | +|*o+o..*.. ..o | +|.+..o. = o | +|o o S | +|. o | +| o +. | +|....=. | +| .o.o. | ++----[SHA256]-----+ +``` + +Quindi, utilizza il comando `scp` per caricare il file della chiave pubblica sul server. Per esempio, carica questa chiave pubblica dell'utente **testrsync** + +```bash +[root@fedora ~]# scp -P 22 /root/.ssh/id_rsa.pub root@192.168.100.4:/home/testrsync/ +``` + +```bash +[root@Rocky ~]# cat /home/testrsync/id_rsa.pub >> /home/testrsync/.ssh/authorized_keys +``` + +Prova ad accedere senza autenticazione segreta, successo! + +```bash +[root@fedora ~]# ssh -p 22 testrsync@192.168.100.4 +Last login: Tue Nov 2 21:42:44 2021 from 192.168.100.5 +[testrsync@Rocky ~]$ +``` + +!!! tip "Attenzione!" Il file di configurazione del server **/etc/ssh/sshd_config** dovrebbe essere aperto PubkeyAuthentication yes + +## rsync protocollo di autenticazione senza password + +Dal lato client, il servizio rsync prepara una variabile di ambiente per il sistema-**RSYNC_PASSWORD**, che è vuoto per impostazione predefinita, come mostrato sotto: + +```bash +[root@fedora ~]# echo "$RSYNC_PASSWORD" + +[root@fedora ~]# +``` + +Se si desidera ottenere l'accesso all'autenticazione senza password, è sufficiente assegnare un valore a questa variabile. Il valore assegnato è la password precedentemente impostata per l'utente virtuale li. Allo stesso tempo, dichiara questa variabile come una variabile globale. + +```bash +[root@Rocky ~]# cat /etc/rsyncd_users.db +li:13579 +``` + +```bash +[root@fedora ~]# export RSYNC_PASSWORD=13579 +``` + +Provalo, successo! Nessun nuovo file appare qui, quindi l'elenco dei file trasferiti non è visualizzato. + +```bash +[root@fedora ~]# rsync -avz li@192.168.100.4::share /root/ +receiving incremental file list +./ + +sent 30 bytes received 193 bytes 148.67 bytes/sec +total size is 883 speedup is 3.96 +``` + +!!! tip "Suggerimento!" È possibile scrivere questa variabile in **/etc/profile** per renderla efficace in modo permanente. Il contenuto è: `export RSYNC_PASSWORD=13579` From fe77c957f955c0c1da3f667afb77045f994a8cd2 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Sun, 26 Dec 2021 10:50:43 -0500 Subject: [PATCH 7/8] New translations 06_rsync_inotify.md (Italian) --- .../learning_rsync/06_rsync_inotify.it.md | 147 ++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 docs/books/learning_rsync/06_rsync_inotify.it.md diff --git a/docs/books/learning_rsync/06_rsync_inotify.it.md b/docs/books/learning_rsync/06_rsync_inotify.it.md new file mode 100644 index 0000000000..912ca553d9 --- /dev/null +++ b/docs/books/learning_rsync/06_rsync_inotify.it.md @@ -0,0 +1,147 @@ +--- +title: inotify-tools installazione e uso +author: tianci li +contributors: Steven Spencer, Franco Colussi +update: 2021-12-26 +--- + +# Compilare e installare + +Eseguire le seguenti operazioni nel server. Nel vostro ambiente, alcuni pacchetti dipendenti potrebbero essere mancanti. Install-`dnf -y install autoconf automake libtool` + +```bash +[root@Rocky ~]# wget -c https://github.com/inotify-tools/inotify-tools/archive/refs/tags/3.21.9.6.tar.gz +[root@Rocky ~]# tar -zvxf 3.21.9.6.tar.gz -C /usr/local/src/ +[root@Rocky ~]# cd /usr/local/src/inotify-tools-3.21.9.6/ +[root@Rocky /usr/local/src/inotify-tools-3.21.9.6]# ./autogen.sh && \ +./configure --prefix=/usr/local/inotify-tools && \ +make && \ +make install +... +[root@Rocky ~]# ls /usr/local/inotify-tools/bin/ +inotifywait inotifywatch +``` + +Aggiungi la variabile di ambiente PATH, scrivila al file di configurazione e lascia che abbia effetto in modo permanente. + +```bash +[root@Rocky ~]# vim /etc/profile +... +PATH=$PATH:/usr/local/inotify-tools/bin/ +[root@Rocky ~]# . /etc/profile +``` + +**Perché non utilizzare il pacchetto RPM inotify-tools dell'archivio EPEL? E il modo per usare il codice sorgente per compilare e installare?** + +L'autore ritiene personalmente che la trasmissione di dati a distanza sia una questione di efficienza, soprattutto in un ambiente di produzione, dove ci sono un gran numero di file da sincronizzare e un singolo file è particolarmente grande. Inoltre, la nuova versione avrà alcune correzioni di bug e espansioni delle funzioni, e forse l'efficienza di trasmissione della nuova versione sarà maggiore, quindi vi consiglio di installare inotify-tools dal codice sorgente. Naturalmente, questo è il suggerimento personale dell'autore, non tutti gli utenti lo devono seguire. + +## Regolazione dei parametri del kernel + +È possibile regolare i parametri del kernel in base alle esigenze dell'ambiente di produzione. Per impostazione predefinita, ci sono tre file in **/proc/sys/fs/inotity/** + +```bash +[root@Rocky ~]# cd /proc/sys/fs/inotify/ +[root@Rocky /proc/sys/fs/inotify]# cat max_queued_events ;cat max_user_instances ;cat max_user_watches +16384 +128 +28014 +``` + +* max_queued_events-dimensione massima della coda del monitor, predefinita 16384 +* max_user_instances-il numero massimo di istanze di monitoraggio, il valore predefinito è 128 +* max_user_watches-il numero massimo di file monitorati per istanza, il valore predefinito è 8192 + +Scrivi alcuni parametri e valori in **/etc/sysctl.conf**, gli esempi sono i seguenti. Quindi usa `sysctl -p` per rendere i file effettivi + +```txt +fs.inotify.max_queued_events = 16384 +fs.inotify.max_user_instances = 1024 +fs.inotify.max_user_watches = 1048576 +``` + +## Comandi correlati + +Lo strumento inotify-tools ha due comandi, chiamati: +* **inotifywait**-Per il monitoraggio continuo, risultati in tempo reale. È generalmente usato con lo strumento di backup incrementale rsync. Poiché si tratta di un monitoraggio del file system, può essere utilizzato con uno script. Introdurremo lo script specifico in un secondo momento. +* **inotifywatch**-per il monitoraggio a breve termine, risultati di output dopo il completamento dell'attività. + +`inotifywait` ha principalmente le seguenti opzioni: + +```txt +-m significa monitoraggio continuo +-r Monitoraggio ricorsivo +-q Semplificare le informazioni di output +-e specifica il tipo di evento di dati di monitoraggio, più tipi di eventi sono separati da virgole nello stato inglese +``` + +Gli eventi sono i seguenti: + +| Tipo di evento | Descrizione | +| -------------- | --------------------------------------------------------------------------------------- | +| access | Accesso al contenuto di un file o di una directory | +| modify | I contenuti del file o della directory vengono scritti | +| attrib | Gli attributi del file o della directory vengono modificati | +| close_write | Il file o la directory viene aperto in modalità scrivibile e quindi chiuso | +| close_nowrite | Il file o la directory è chiuso dopo essere stato aperto in modalità di sola lettura | +| close | Indipendentemente dalla modalità lettura/scrittura, il file o la directory viene chiuso | +| open | Il file o la directory è aperto | +| moved_to | Un file o una directory è spostato nella directory monitorata | +| moved_from | Un file o una directory viene spostato dalla directory monitorata | +| move | Ci sono file o cartelle che vengono spostati o rimossi dalla directory di monitoraggio | +| move_self | Il file o la directory monitorati sono stati spostati | +| create | Ci sono file o directory create nella directory monitorata | +| delete | Viene eliminato un file o una directory nella directory monitorata | +| delete_self | File o directory ed eliminazione | +| unmount | File system contenente file o directory non montati | + +Esempio: `[root@Rocky ~]# inotifywait -mrq -e create,delete /rsync/` + +## Dimostrazione del comando `inotifywait` + +Digitare il comando nel primo terminale pts/0, e la finestra viene bloccata dopo aver premuto Invio, indicando che sta monitorando + +```bash +[root@Rocky ~]# inotifywait -mrq -e create,delete /rsync/ + +``` + +Nel secondo terminale pts/1, vai nella directory /rsync/ e crea un file. + +```bash +[root@Rocky ~]# cd /rsync/ +[root@Rocky /rsync]# touch inotify +``` + +Torna al primo terminale pts/0, le informazioni di output sono le seguenti: + +```bash +[root@Rocky ~]# inotifywait -mrq -e create,delete /rsync/ +/rsync/ CREATE inotify +``` + +## Combinazione di `inotifywait` and `rsync` + +!!! tip "Attenzione!" Stiamo operando nel server Rocky Linux 8, utilizzando il protocollo SSH per la dimostrazione. + +Per il login di autenticazione senza password del protocollo SSH, si prega di fare riferimento a [rsync accesso di autenticazione senza password](05_rsync_authentication-free_login.md), che non è descritto qui. Un esempio del contenuto di uno script bash è il seguente. È possibile aggiungere diverse opzioni dopo il comando in base alle esigenze per soddisfare le vostre esigenze. Ad esempio, puoi anche aggiungere `--delete` dopo il comando `rsync`. + +```bash +#!/bin/bash +a="/usr/local/inotify-tools/bin/inotifywait -mrq -e modify,move,create,delete /rsync/" +b="/usr/bin/rsync -avz /rsync/* testfedora@192.168.100.5:/home/testfedora/" +$a | while read directory event file + do + $b &>> /tmp/rsync.log + done +``` + +```bash +[root@Rocky ~]# chmod +x rsync_inotify.sh +[root@Rocky ~]# bash /root/rsync_inotify.sh & +``` + +!!! tip "sottolineare ancora!" Quando si utilizza il protocollo SSH per la trasmissione della sincronizzazione dei dati, se la porta di servizio SSH della macchina di destinazione non è 22, puoi usare un metodo simile a questo—— `b="/usr/bin/rsync -avz -e 'ssh -p [port-number]' /rsync/* testfedora@192. 68.100.5:/home/testfedora/"` + +!!! tip "Attenzione!" Se vuoi avviare questo script all' avvio `[root@Rocky ~]# echo "bash /root/rsync_inotify. h &" >> /etc/rc ocali` `[root@Rocky ~]# chmod +x /etc/rc.local` + +Se si sta utilizzando il protocollo rsync per la sincronizzazione, è necessario configurare il servizio rsync della macchina di destinazione, fare riferimento a [rsync demo 02](03_rsync_demo02.md), [rsync file di configurazione](04_rsync_configure.md), [accesso senza autenticazione segreta rsync](05_rsync_authentication-free_login.md) From dff75678a01be73023aec80d2c254e0bbc46a3d0 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Sun, 26 Dec 2021 10:50:45 -0500 Subject: [PATCH 8/8] New translations 07_rsync_unison_use.md (Italian) --- .../learning_rsync/07_rsync_unison_use.it.md | 137 ++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 docs/books/learning_rsync/07_rsync_unison_use.it.md diff --git a/docs/books/learning_rsync/07_rsync_unison_use.it.md b/docs/books/learning_rsync/07_rsync_unison_use.it.md new file mode 100644 index 0000000000..faaea136e6 --- /dev/null +++ b/docs/books/learning_rsync/07_rsync_unison_use.it.md @@ -0,0 +1,137 @@ +--- +title: Usare unison +author: tianci li +contributors: Steven Spencer, Franco Colussi +update: 2021-12-26 +--- + +# Breve + +Come abbiamo accennato in precedenza, la sincronizzazione unidirezionale utilizza rsync + inotify-tools. In alcuni scenari di utilizzo speciali, può essere richiesta la sincronizzazione a due vie, che richiede inotify-tools + unison. + +## Preparazione dell'ambiente + +* Sia Rocky Linux 8 che Fedora 34 richiedono la compilazione del codice sorgente e l'installazione **inotify-tools**, che non è specificamente trattato qui. +* Entrambe le macchine devono essere autenticate senza password, qui usiamo il protocollo SSH +* [ocaml](https://github.com/ocaml/ocaml/) utilizza v4.12.0, [unison](https://github.com/bcpierce00/unison/) utilizza v2.51.4. + +Dopo che l'ambiente è pronto, si può verificare: + +```bash +[root@Rocky ~]# inotifywa +inotifywait inotifywatch +[root@Rocky ~]# ssh -p 22 testrsync@192.168.100.5 +Last login: Thu Nov 4 13:13:42 2021 from 192.168.100.4 +[testrsync@fedora ~]$ +``` + +```bash +[root@fedora ~]# inotifywa +inotifywait inotifywatch +[root@fedora ~]# ssh -p 22 testrsync@192.168.100.4 +Last login: Wed Nov 3 22:07:18 2021 from 192.168.100.5 +[testrsync@Rocky ~]$ +``` + +!!! tip "Attenzione" I file di configurazione delle due macchine **/etc/ssh/sshd_config** dovrebbero essere aperti PubkeyAuthentication sì + +## Rocky Linux 8 installare unison + +Ocaml è un linguaggio di programmazione, e lo strato inferiore di unison dipende da esso. + +```bash +[root@Rocky ~]# wget -c https://github.com/ocaml/ocaml/archive/refs/tags/4.12.0.tar.gz +[root@Rocky ~]# tar -zvxf 4.12.0.tar.gz -C /usr/local/src/ +[root@Rocky ~]# cd /usr/local/src/ocaml-4.12.0 +[root@Rocky /usr/local/src/ocaml-4.12.0]# ./configure --prefix=/usr/local/ocaml && make world opt && make install +... +[root@Rocky ~]# ls /usr/local/ocaml/ +bin lib man +[root@Rocky ~]# echo PATH=$PATH:/usr/local/ocaml/bin >> /etc/profile +[root@Rocky ~]# . /etc/profile +``` + +```bash +[root@Rocky ~]# wget -c https://github.com/bcpierce00/unison/archive/refs/tags/v2.51.4.tar.gz +[root@Rocky ~]# tar -zvxf v2.51.4.tar.gz -C /usr/local/src/ +[root@Rocky ~]# cd /usr/local/src/unison-2.51.4/ +[root@Rocky /usr/local/src/unison-2.51.4]# make UISTYLE=txt +... +[root@Rocky /usr/local/src/unison-2.51.4]# ls src/unison +src/unison +[root@Rocky /usr/local/src/unison-2.51.4] cp -p src/unison /usr/local/bin +``` + +## Fedora 34 installare unison + +La stessa operazione. + +```bash +[root@fedora ~]# wget -c https://github.com/ocaml/ocaml/archive/refs/tags/4.12.0.tar.gz +[root@feodora ~]# tar -zvxf 4.12.0.tar.gz -C /usr/local/src/ +[root@fedora ~]# cd /usr/local/src/ocaml-4.12.0 +[root@fedora /usr/local/src/ocaml-4.12.0]# ./configure --prefix=/usr/local/ocaml && make world opt && make install +... +[root@fedora ~]# ls /usr/local/ocaml/ +bin lib man +[root@fedora ~]# echo PATH=$PATH:/usr/local/ocaml/bin >> /etc/profile +[root@fedora ~]#. /etc/profile +``` + +```bash +[root@fedora ~]# wget -c https://github.com/bcpierce00/unison/archive/refs/tags/v2.51.4.tar.gz +[root@fedora ~]# tar -zvxf v2.51.4.tar.gz -C /usr/local/src/ +[root@fedora ~]# cd /usr/local/src/unison-2.51.4/ +[root@fedora /usr/local/src/unison-2.51.4]# make UISTYLE=txt +... +[root@fedora /usr/local/src/unison-2.51.4]# ls src/unison +src/unison +[root@fedora /usr/local/src/unison-2.51.4]# cp -p src/unison /usr/local/bin +``` + + +## Dimostrazione + +**Il nostro requisito è la directory /dir1/ di Rocky Linux 8 che viene automaticamente sincronizzata nella directory /dir2/ di Fedora 34; allo stesso tempo, la directory /dir2/ di Fedora 34 viene automaticamente sincronizzata con la directory /dir1/ di Rocky Linux 8** + +### Configurare Rocky Linux 8 + +```bash +[root@Rocky ~]# mkdir /dir1 +[root@Rocky ~]# setfacl -m u:testrsync:rwx /dir1/ +[root@Rocky ~]# vim /root/unison1.sh +#!/bin/bash +a="/usr/local/inotify-tools/bin/inotifywait -mrq -e create,delete,modify,move /dir1/" +b="/usr/local/bin/unison -batch /dir1/ ssh://testrsync@192.168.100.5//dir2" +$a | while read directory event file +do + $b &>> /tmp/unison1.log +done +[root@Rocky ~]# chmod +x /root/unison1.sh +[root@Rocky ~]# bash /root/unison1.sh & +[root@Rocky ~]# jobs -l +``` + +### Configurare Fedora 34 + +```bash +[root@fedora ~]# mkdir /dir2 +[root@fedora ~]# setfacl -m u:testrsync:rwx /dir2/ +[root@fedora ~]# vim /root/unison2.sh +#!/bin/bash +a="/usr/local/inotify-tools/bin/inotifywait -mrq -e create,delete,modify,move /dir2/" +b="/usr/local/bin/unison -batch /dir2/ ssh://testrsync@192.168.100.4//dir1" +$a | while read directory event file +do + $b &>> /tmp/unison2.log +done +[root@fedora ~]# chmod +x /root/unison2.sh +[root@fedora ~]# bash /root/unison2.sh & +[root@fedora ~]# jobs -l +``` + +!!! tip "Attenzione!" Per la sincronizzazione bidirezionale, gli script di entrambe le macchine devono essere avviati, altrimenti verrà segnalato un errore. + +!!! tip "Attenzione!" Se vuoi avviare questo script all'avvio `[root@Rocky ~]# echo "bash /root/unison1.sh &" >> /etc/rc.local` `[root@Rocky ~]# chmod +x /etc/rc.local` + +!!! tip "Attenzione!" Se vuoi interrompere il processo corrispondente di questo script, puoi trovarlo con il comando `htop` e **kill**