Exile on Keyboard St. - Blog sur Linux et Debian

Aller au contenu | Aller au menu | Aller à la recherche

vendredi 16 février 2018

Quelques flags utiles des commandes 'cp' et 'mv'

Que ce soit dans un terminal ou dans un script Shell, on utilise tous quotidiennement les commandes cp et mv.

Mais connaissons tous vraiment les options de ces commandes ? Pas si sûr ... Ces options sont précieuses dans un script Shell pour comprendre le flow d'exécution ou pour débugger celui-ci.

Première option intéressante, l'option -v ou --verbose:

user@machine:~ cp --verbose cleanup.log /tmp/
« cleanup.log » -> « /tmp/cleanup.log »

qui permet d'afficher ce qui est effectué. Cette option existe aussi sur la commande mv.

Deuxième option, l'option --u ou --update permet de ne copier ou déplacer le fichier que si celui-ci est plus récent que la cible:

user@machine:~$ cp --verbose --update cleanup.log /tmp/
user@machine:~$ touch cleanup.log 
user@machine:~$ cp --verbose --update cleanup.log /tmp/
« cleanup.log » -> « /tmp/cleanup.log »

La première commande cp n'a rien fait puisque les fichiers étaient identiques.

cp et mv ont aussi une option qui permet d'archiver les fichiers cibles déjà existant avant de faire la copie ou le déplacement:

user@machine:~$ cp --verbose --backup=numbered cleanup.log /tmp/
« cleanup.log » -> « /tmp/cleanup.log » (archive : « /tmp/cleanup.log.~1~ »)
user@machine:~$ cp --verbose --backup=numbered cleanup.log /tmp/
« cleanup.log » -> « /tmp/cleanup.log » (archive : « /tmp/cleanup.log.~2~ »)

Cela permet de garder les versions précédentes si l'on a besoin de revenir en arrière.

L'option --backup peut prendre les valeurs suivantes:

  • none
  • numbered
  • existing
  • simple

Autre option intéressante pour le mode interactif, l'option --interactive ou -i, qui en cas de fichier existant demande si on doit l'écraser:

user@machine:~$ cp --verbose --interactive cleanup.log /tmp/
cp : voulez-vous écraser « /tmp/cleanup.log » ? oui
« cleanup.log » -> « /tmp/cleanup.log »

Si l'on souhaite conserver les fichiers existants:

user@machine:~$ cp --verbose --no-clobber cleanup.log /tmp/

La copie n'a pas été effectuée.

Enfin pour finir citons le flag -r, -R ou --recursive qui permet de copier récursivement les répertoires.

lundi 1 janvier 2018

tar: Utilisez auto-compress pour spécifier le format de compression

L'utilitaire tar, pour "Tape Archive", permet de créer un fichier compressé ou non contenant tout un répertoire ainsi que son contenu, le tout de manière récursive.

La commande tar supporte 7 programmes de compression, à savoir:

  • gzip
  • bzip2
  • lzip
  • lzma
  • lzop
  • xz
  • compress

Les deux ou trois premiers étant évidemment les plus utilisés.

Vous vous souvenez sans doute que le flag -z est à utiliser en cas de compression gzip et que -j est destiné au format bzip2.

Mais peut-être avez-vous oublié que -J active la compression XZ ou que -Z permet d'utiliser le programme compress ?

Il est en fait plus simple d'utiliser les flags "longs", à savoir:

  • --gzip
  • --bzip2
  • --lzip
  • --lzma
  • --lzop
  • --xz

Mais il y a encore mieux, et c'est de laisser le choix à la commande tar de déterminer quel programme de compression va créer l'archive au format demandé.

Cela se fait avec le flag --auto-compress ou -a.

Ce flag s'utilise comme suit:

tar caf archive.tar.bz2 .

C'est quand même plus simple, non ?

Si vous demandez un format de compression qui nécessite un programme que vous n'avez pas installé, vous aurez une erreur qui ressemble à:

tar (child): lzop : exec impossible: Aucun fichier ou dossier de ce type
tar (child): Error is not recoverable: exiting now

A la décompression, le format de compression est trouvé tout seul, sans aucune option particulière:

tar -C /tmp -xf archives/hugo.taz

vendredi 22 décembre 2017

Installer l'Antivirus clamav sous Debian

On va voir aujourd'hui comment installer et utiliser rapidement l'antivirus clamav sous Debian.

Le repository Debian contient les paquets principaux suivants concernant clamav:

  • libclamav7, la librairie de l'Antivirus
  • clamav-base, qui s'occupe de créer et de maintenir le compte système clamav
  • clamav, la commande ligne elle même
  • clamav-freshclam, l'utilitaire de mise à jour de la base virale
  • clamav-daemon, le démon de scan qui s'intègre avec les MTA (Mail Transport Agent)
  • clamdscan, la ligne de commande du démon

On pourrait citer aussi clamtk qui est une interface graphique pour configurer clamav.

Pour installer clamav, le plus simple est d'installer le paquet clamav-daemon, car cela installera tous les paquets dont on a besoin:

sudo apt-get install clamav-daemon
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés : 
  clamav clamav-base clamav-freshclam clamdscan libclamav7 libmspack0
Paquets suggérés :
  clamav-docs apparmor daemon libclamunrar7
Les NOUVEAUX paquets suivants seront installés :
  clamav clamav-base clamav-daemon clamav-freshclam clamdscan libclamav7 libmspack0
0 mis à jour, 7 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 2 773 ko/2 820 ko dans les archives.
Après cette opération, 5 819 ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] 

clamav s'installe alors sans poser aucune question.

Pour scanner ensuite le répertoire $HOME de l'utilisateur:

sudo clamscan -ir /home/user

Le flag -i ou --infected permet de n'afficher que les fichiers infectés, et le flag -r ou --recursive signifie que le répertoire $HOME sera scanné récursivement.

Le résultat du scan récursif donne:

----------- SCAN SUMMARY -----------
Known viruses: 6369759
Engine version: 0.99.2
Scanned directories: 21168
Scanned files: 91929
Infected files: 0
Data scanned: 10167.24 MB
Data read: 28274.97 MB (ratio 0.36:1)
Time: 3092.957 sec (51 m 32 s)

Si on souhaite entendre un bip lors de la détection d'un virus, on peut ajouter le flag --bell.

On verra prochainement comment paramétrer clamd.conf, le fichier de configuration de clamav-daemon ainsi que freshclam.conf, le fichier de configuration de clamav-freshclam.

- page 1 de 35