Rechercher dans ce blog

Affichage des articles dont le libellé est directory. Afficher tous les articles
Affichage des articles dont le libellé est directory. Afficher tous les articles

jeudi 30 avril 2009

rsync super cp

Pour copier un répertoire avec rsync et en faire la synchronisation s'il existe déjà j'utilise rsync avec ces options

%rsync -au --delete dir_source dir_destination

-a archive mode, equivalent to -rlptgoD

-u, --update update only (don't overwrite newer files)

--delete delete files that don't exist on sender

le -u sert surtout à préserver les fichiers qui auraient été modifié dans le dossier de destination (ce qui en principe ne se produit pas... mais les principes...)

--delete permet de nettoyer le dir_destination des fichiers qui ne sont plus dans le dir_source.

ATTENTION --delete est une option DANGEREUSE !

Bien s'assurer de faire la copie dans le bon répertoire sans quoi tout le répertoire de destination sera effacé ainsi que les sous-répertoires.

Pour inhiber une option incluse dans a faire --no-Option

par exemple par de chown et chgrp --no-o --no-g ce qui évite d'avoir un message d'erreur quand le fichier de destination est mounté avec un owner et pas de droit pour changer de owner tandis que rsync tourne en root.

samedi 25 avril 2009

files directory listing to html page with hyperlinks - perl script

Petit script que j'ai écrit pour créer une page htlm qui liste les entrées d'un répertoire et crée les liens vers les fichiers.

C'est un script perl rudimentaire mais qui fait ce dont j'avais besoin. Avant de l'écrire je me suis beaucoup énervé à chercher sur le net un script aussi basique et élémentaire sans rien trouver !

#!/usr/bin/perl # Script pour lister sur une page html les entrees d'un repertoire # avec hyperliens vers les fichiers # Version 0.1 - 2009_04_25 # Le href pointe toujours vers un path relatif au dir qui contient les # fichiers listes. La page html doit donc etre placee dans le meme # dossier que les fichiers sur le serveur. @ARGV or die "Usage : %dir2html somedir > liste.html\n"; $some_dir = shift @ARGV; opendir ( DIR, $some_dir ) || die "can't opendir $some_dir: $!"; # Formatage avec des paragraphes plutot que liste a bulle #@dots = map "<p><a href=\"$_\">$_<\/a><\/p>", grep ! /^\./,   readdir ( DIR ) ; # Formatage en liste # J'exclus de la liste de sortie par un simple grep html|htm la page generee # et donc du meme coup tous les fichiers avec ces extensions @dots = map "<li><a href=\"$_\">$_<\/a><\/li>^M", grep ! /.htm ( l ) ?$/, grep ! /^\./,   readdir ( DIR ) ; closedir DIR; print <<EOF; <html> <head>   <meta content="text/html; charset=UTF-8" http-equiv="content-type">   <title>Liste des fichiers du repertoire $some_dir </title>   <meta name="robots" content="noindex, nofollow, noarchive"> </head> <body> <ul> EOF print @dots; print <<EOF; </ul> </body> </html> EOF