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.