3 Dic 2015 |
Se si vogliono copiare due cartelle in Linux si può usare rsync da linea di comando.
Preparo l’ambiente di test creando le seguenti cartelle e file:
cartella “/share/source”
cartella “/share/destination”
cartella “/share/source/folder 1”
cartella “/share/source/folder 2”
file “/share/source/folder 1/file 1”
file “/share/source/folder 2/file 2”
Voglio copiare il contenuto della cartella “source” nella cartella “destination”. Quindi lancio:
[/share] # rsync -avc "source/" "destination"
Come mi aspettavo, ecco il risultato:
sending incremental file list
./
folder 1/
folder 1/file 1.txt
folder 2/
folder 2/file 2.txt
sent 253 bytes received 61 bytes 628.00 bytes/sec
total size is 12 speedup is 0.04
Verifico il risultato:
[/share] # ls -lR destination/
destination/:
drwxrwx--- 2 admin administ 4096 Dec 2 17:24 folder 1/
drwxrwx--- 2 admin administ 4096 Dec 2 17:24 folder 2/
destination/folder 1:
-rwxrwx--- 1 admin administ 6 Dec 2 17:24 file 1.txt*
destination/folder 2:
-rwxrwx--- 1 admin administ 6 Dec 2 17:24 file 2.txt*
Con un bel man rsync si possono vedere le opzioni che ho usato: https://linux.die.net/man/1/rsync
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-v, --verbose increase verbosity
-c, --checksum skip based on checksum, not mod-time & size
Qualche nota:
- Nel comando del confronto, la slash “/” di “source/” vuol dire “il contenuto di source”.
- L’opzione “-a” equivale a “-rlptgoD”. Incollo qui sotto le spiegazioni:
-r, --recursive recurse into directories
-l, --links copy symlinks as symlinks
-p, --perms preserve permissions
-t, --times preserve modification times
-g, --group preserve group
-o, --owner preserve owner (super-user only)
-D same as --devices --specials
--devices preserve device files (super-user only)
--specials preserve special files
2 Dic 2015 |
Se si vogliono confrontare due cartelle in Linux si può usare rsync da linea di comando.
Preparo l’ambiente di test creando le seguenti cartelle e file:
cartella “/share/source”
cartella “/share/destination”
cartella “/share/source/folder 1”
cartella “/share/source/folder 2”
file “/share/source/folder 1/file 1”
file “/share/source/folder 2/file 2”
cartella “/share/destination/folder 1”
file “/share/destination/folder 1/file 1”
Voglio confrontare la cartella “source” con la cartella “destination”. Quindi lancio:
[/share] # rsync -avnc "source/" "destination"
Come mi aspettavo, ecco il risultato:
sending incremental file list
./
folder 2/
folder 2/file 2.txt
sent 155 bytes received 23 bytes 356.00 bytes/sec
total size is 12 speedup is 0.07 (DRY RUN)
la cartella “folder 2” e il file “folder 2/file 2.txt” sono quelli che mancano nella cartella “destination”.
Con un bel man rsync si possono vedere le opzioni che ho usato: https://linux.die.net/man/1/rsync
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-v, --verbose increase verbosity
-n, --dry-run perform a trial run with no changes made
-c, --checksum skip based on checksum, not mod-time & size
Qualche nota:
- Nel comando del confronto, la slash “/” di “source/” vuol dire “il contenuto di source”.
- L’opzione “-a” equivale a “-rlptgoD”. Incollo qui sotto le spiegazioni:
-r, --recursive recurse into directories
-l, --links copy symlinks as symlinks
-p, --perms preserve permissions
-t, --times preserve modification times
-g, --group preserve group
-o, --owner preserve owner (super-user only)
-D same as --devices --specials
--devices preserve device files (super-user only)
--specials preserve special files
- L’opzione “-n” è indispensabile per il confronto!!
6 Gen 2013 |
Mentre stavo installando un tema di WordPress:
dopo aver premuto su “Install Now”, è apparso l’errore:
Unable to create directory wp-content/uploads/2013/01. Is its parent directory writable by the server?
Per risolvere il problema ho aperto una shell del server [1] su cui stavo facendo i test, mi sono posizionato nella directory di installazione di wordpress e ho dato i permessi corretti alla cartella wp-content:
$ cd /home/utente/public_html/wordpress-test/
$ sudo chown www-data:www-data wp-content
Poi ho rilanciato l’installazione del tema e non ha dato più errori [2].
Note
[1] Server usato: Ubuntu
[2] Attenzione: in altre distribuzioni di Linux (probabilmente quelle NON-Debian-like) può darsi che l’utente di Apache2 non sia “www-data”, ma un altro. Verificare qual è e rilanciare il relativo comando.
In rete ho visto altre soluzioni secondo me molto pericolose come dare alla cartella “wp-content” permessi rwx-rwx-rwx (chmod 777). Ovviamente lo sconsiglio.