DebSousDeb - Débuter sous Debian

Débuter sous Debian ou la Découverte au Jour le Jour de la Distribution Debian

26 août 2006

Tar : archiver/sauvegarder vos données

Tar était une commande très utilisée sous unix avant l'apparation de logiciels de sauvegarde. Pour la petite histoire tar signifie Tape Archive. L'avantage de la commande tar est qu'elle préserve les propriétaires et permissions du système de fichiers et qu'elle peut être couplée très facilement avec des outils de compression.

1. Pour créer une archive

- Archive sans compression :
tar -cvf [nom du fichier].tar [nom du répertoire à archiver]

Exemple :
$tar -cvf doc.tar ./doc/
/doc
./doc/essai.txt
./doc/essai1.txt
./doc/essai2.txt
./doc/essai3.txt


- Archive avec compression gzip :
tar -czf [nom du fichier].tgz [nom du répertoire à archiver]

Exemple :
$tar -czf doc2.tgz ./doc

- Archive avec compression bzip2 :
tar -cjf [nom du fichier].tbz2 [nom du répertoire à archiver]

2. Pour lire/contrôler une archive

- lire une archive simple
$tar -tvf [nom du fichier].tar

Exemple :
$tar -tvf doc.tar
drwxr-xr-x tagger/tagger     0 2006-08-26 14:34:20 ./doc/
-rw-r--r-- tagger/tagger     0 2006-08-26 14:33:54 ./doc/essai.txt
-rw-r--r-- tagger/tagger     0 2006-08-26 14:34:06 ./doc/essai1.txt
-rw-r--r-- tagger/tagger     0 2006-08-26 14:34:12 ./doc/essai2.txt
-rw-r--r-- tagger/tagger     0 2006-08-26 14:34:20 ./doc/essai3.txt

-lire une archive compressée avec gzip :
$tar -tzf [nom du fichier].tgz

-lire une archive compressée avec bzip2 :
$tar -tjf [nom du fichier].tbz2

3. Pour installer/désarchiver une archive

- Désarchiver une archive sans compression :
tar -xvf [nom du fichier].tar [destination]

Exemple :
Ici on désarchive le contenu de doc.tar dans le répertoire exemple
$tar -xvf doc.tar ./exemple
/doc
./doc/essai.txt
./doc/essai1.txt
./doc/essai2.txt
./doc/essai3.txt


- Désarchiver une archive avec compression gzip :
tar -xzf [nom du fichier].tgz [destination]

Exemple :
$tar -czf doc2.tgz ./exmple

- Désarchiver une archive avec compression bzip2 :
tar -xjf [nom du fichier].tbz2 [destination]

4. Archiver / désarchiver à la volée (utile lors d'un file system full)

4.1 Ici on se place dans le répertoire source

tar cvf - [nom du répertoire source à archiver] | (cd [destination] ; tar xvf - .)

Exemple :
$tar cvf - ./doc | (cd /films ; tar xvf - .)

Le répertoire ./doc a été archivé puis nous allons dans le répertoire de destination /films et nous désarchivons

4.2 Ici on se place dans le répertoire de destination

$tar cvf - -C [source] [nom du répertoire à archiver] |  tar xvf -

Exemple :
$cd /films
$tar cvf - -C /home/toto doc | tar xvf -
Dans un premier temps nous allons dans le répertoire /films
Enuiste, avec la commande tar, nous allons dans le répertoire /home/toto/ avec l'option -C puis nous archivons le répertoire doc, que nous désarchivons ensuite dans /films.

Enfin il existe plusieurs options pour la commande tar et je vous invite à en lire le man.

Posté par tagger à 13:18 - 06. Commandes en vrac - Commentaires [0] - Rétroliens [0] - Permalien [#]

13 août 2006

Récupérer un fichier supprimé ... c'est possible

Il peut arriver par inadvertance que vous supprimiez un fichier. Il y a un moyen simple de retrouver le contenu de celui-ci en utilisant tout bêtement la commande grep :

Voici la syntaxe :

grep -a -B<taille avant> -A<taille après> 'texte' /dev/<votre_partition>

Il faut être root.

Voici un exemple :
Vous avez supprimé un fichier dont vous savez qu'il contient le mot farret_serveur. Vous voulez récupérer les 100 lignes précédent ce mot et les 200 lignes qui suivent ce mot. Ce fichier se trouvait sur la partition /dev/hd9.
#
grep -a -B100 -A200 'farret_serveur' /dev/hda9

Pour en savoir plus http://recover.sourceforge.net/

 

Posté par tagger à 22:54 - 06. Commandes en vrac - Commentaires [0] - Rétroliens [0] - Permalien [#]

08 janvier 2006

La commande find

<p><p><p><p><p>Configuration des serveurs NT – TSE sur site</p></p></p></p></p>

1. Nom

find - Rechercher des fichiers dans une hiérarchie de répertoires.

2. description

find parcourt les arborescences de répertoires commençant en chacun des chemins mentionnés, en évaluant les expressions fournies pour chaque fichier rencontré.

3. Expressions

L'expression est constituée d'options (affectant l'ensemble des opérations plutôt que le traitement d'un fichier particulier, et renvoyant toujours vrai), de tests (renvoyant une valeur vraie ou fausse), et d'actions (ayant des effets de bords et renvoyant une valeur vraie ou fausse), tous ces éléments étant séparés par des opérateurs.

Quand un opérateur est manquant, l'opération par défaut -and est appliquée. Si l'expression ne contient pas d'action autre que -prune, find applique l'action -print par défaut sur tous les fichiers pour lesquels l'expression est vraie.

4. Options

L'expression est constituée d'options (affectant l'ensemble des opérations plutôt que le traitement d'un fichier particulier, et renvoyant toujours vrai), de tests (renvoyant une valeur vraie ou fausse), et d'actions (ayant des effets de bords et renvoyant une valeur vraie ou fausse), tous ces éléments étant séparés par des opérateurs.

Les options principales du find :

-xdev : ne pas parcourir les répertoires situés sur d'autres systèmes de fichiers. Cette option est très intéressante pour rechercher sur un file system.

5. Tests

Les arguments numériques peuvent être indiqués comme suit:

+n : supérieur à n,

-n : inférieur à n,

n : égal à n.

-atime n : dernier accès au fichier exactement n jours auparavant. Exemple : -atime -2 Ayant subi un accès depuis avant-hier

-ctime n : derniere modification du statut du fichier il y a n*24 heures.

-mtime n : fichier modifié exactement n jours auparavant. Exemple : -mtime +7  Inchangés depuis 7 jours au moins  

-name motif : Fichier dont le nom de base (sans les répertoires du chemin d'accès), correspond au motif du shell. Les méta-caractères (`*', `?', et `[]') ne sont jamais mis en correspondance avec un point `.' au début du nom. Pour ignorer un répertoire, ainsi que tous ses sous-répertoires, utiliser l'option -prune; vous trouverez un exemple dans la description de l'option -path.

-perm mode : Fichier dont les autorisations d'accès sont fixées exactement au mode indiqué (en notation symbolique ou octale). La notation symbolique utilise le mode 0 comme point de départ.

-perm -mode : Fichier ayant au moins toutes les autorisations indiquées dans le mode.

-perm +mode : Fichier ayant certaines des autorisations indiquées dans le mode.

-size n[bckw] : Fichier utilisant n unités d'espace. Les unités sont des blocs de 512 octets par défaut (ou si un suffixe `b' suit le nombre n), des octets si un suffixe `c' suit n, des kilo-octets si un suffixe `k' est utilisé, ou des mots de 2 octets si un `w' suit le nombre n. La taille ne prend pas en compte les blocs indirects, mais elle comptabilise les blocs des fichiers éparpillés pas encore alloués. Exemple :  -size +100 De taille supérieur à 50K ( +1000 > 500ko +2000 > 1MO)

-type c

Fichier du type c:

b : fichier spécial en mode bloc (avec buffer)

c : fichier spécial en mode caractère (sans buffer)

d : répertoire

p : tube nommé (FIFO)

f : fichier régulier

l : liens symbolique

s : socket

-user utilisateur : fichier appartenant à l'utilisateur indiqué (UID numérique éventuellement)

6. Actions

-exec commande ; : Exécute la commande; vrai si le code de retour 0 est renvoyé. Tous les arguments suivants de find sont considérés comme des arguments pour la ligne de commande, jusqu'à ce qu'on rencontre un `;'. La chaîne `{}' est remplacée par le nom du fichier en cours de traitement, et ceci dans toutes ses occurences, pas seulement aux endroits où elle est isolée, comme c'est le cas avec d'autres versions de find. Ces deux chaînes peuvent avoir besoin d'être protégées du développement de la ligne de commande par le shell, en utilisant le caractère d'échappement (`\') ou une protection par des apostrophes. La commande est exécutée depuis le répertoire de départ.

-ok commande ; : comme -exec mais interroge d'abord l'utilisateur (en utilisant l'entrée standard). Si la réponse ne commence pas par `y' ou `Y', la commande n'est pas exécutée, et le test devient faux.


7. exemples

Tout ces exemples ont été réalisés sur un serveur AIX et non linux ...

#df -k

Syst. fichiers     Blocs 1024    Libre %Util    Iutil %Iutil Monté sur

/dev/hd4                24576      9276   63%     1455    24% /

/dev/hd2               303104    63716   79%    11370    16% /usr

/dev/hd9var            176128    164312    7%      289     1% /var

/dev/hd3                16384    15748    4%       40     1% /tmp

/dev/hd1                24576    23408    5%       87     2% /home

/dev/lv07               16384      3668   78%      497    13% /outil

Soit le répertoire /tmp avec les fichiers suivants :

#ls -ltr

total 56

drwx------   2 root     system       512 19 fév 1997  lost+found

drwxrwxr-x   8 root     system       512 23 fév 1997  bos

drwxr-xr-x   2 root     system       512 24 fév 1997  etc

drwxr-xr-x   3 root     system       512 09 mar 1999  vgdata

drwxr-xr-x   2 root     system       512 25 oct 2000  chcormer

-rw-r--r--   1 root     system         0 02 nov 14:31 titi

-rw-r--r--   1 root     system         0 02 nov 14:54 tata

-rw-r--r--   1 root     system      6851 02 nov 16:18 toto

exercice 1 : rechercher tous les fichiers dans le file system /tmp seulement ayant été modifiés il y a moins de 24 heures

#find /tmp -xdev -mtime -1 -type f

/tmp/titi

/tmp/toto

/tmp/tata

exercice 2 : rechercher les fichiers toto ou titi sur le file system /tmp

#find /tmp -xdev \( -name toto -o -name titi \)

/tmp/titi

/tmp/toto

exercice 3 : faire une suppression de fichier avec demande de confirmation avec l'option exec et ok

Nous voulons supprimer tous les fichiers dont le nom commence par toto et qui sont situés sous /tmp.

#find /tmp -xdev -name "toto*" -type f -exec rm -i {} \;

rm: Voulez-vous supprimer /tmp/toto? O

Autre syntaxe possible avec l'option -ok :

#find /tmp -xdev -name "toto*" -type f -ok rm {} \;

exercice 4 : rechercher les fichiers modifiés depuis 24 heures avec l'option mtime , les visualiser puis les supprimer après confirmation

#find /tmp -xdev -mtime -1 -type f -exec ls -l {} \; -exec rm -i {} \;

-rw-r--r--   1 root     system         0 02 nov 14:31 /tmp/titi

rm: Voulez-vous supprimer /tmp/titi? o

-rw-r--r--   1 root     system      6851 02 nov 16:18 /tmp/toto

rm: Voulez-vous supprimer /tmp/toto? o

-rw-r--r--   1 root     system         0 02 nov 14:54 /tmp/tata

rm: Voulez-vous supprimer /tmp/tata? o

 

exercice 5 : rechercher un fichier de plus de 1 MO via l'option size

#find /tmp -xdev -size +2000 -type f -exec ls -l {} \;

-rw-r--r--   1 root     system  1091846 02 nov 17:37 /tmp/toto

exercice 6 : rechercher tous les fichiers sous un fs en excluant les fichiers log, core et dmp

#find /logiciels/RIF-AB/re7100 -type f ! \( -name "*.log" -o -name "core" -o -name "*.dmp" \) -exec ls {} \;

 

 

Posté par tagger à 12:27 - 06. Commandes en vrac - Commentaires [1] - Rétroliens [0] - Permalien [#]

18 décembre 2005

stat : affichage des informations sur un fichier ou système de fichiers

La commande stat permet d'afficher un certain nombre d'information sur un fichier ou sur un système de fichier (dans ce cas avec le paramètre -f).
Voici la syntaxe de base pour un fichier : stat mon_fichier
Et celle pour un système de fichier : stat -f mon_fs

Exemples :
$ stat /etc/passwd
  File: `/etc/passwd'
Size: 1269            Blocks: 4          IO Block: 4096 fichier régulier
Device: 301h/769d       Inode: 32317       Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2005-12-18 20:48:56.000000000 +0100
Modify: 2005-10-27 18:35:19.000000000 +0200
Change: 2005-10-27 18:35:19.000000000 +0200


$ stat /dev/hda5
  File: `/dev/hda5'
Size: 0             Blocks: 0          IO Block: 4096   fichier spécial de bloc
Device: 301h/769d       Inode: 68339       Links: 1     Device type: 3,5
Access: (0660/brw-rw----)  Uid: (    0/    root)   Gid: (    6/    disk)
Access: 2005-02-26 07:38:26.000000000 +0100
Modify: 2005-02-26 07:38:26.000000000 +0100
Change: 2005-09-20 17:15:12.000000000 +0200

$ stat -f /home
  File: "/home"
    ID: 0        Namelen: 255     Type: ext2/ext3
Blocks: Total: 2403529    Free: 2112568    Available: 1990475    Size: 4096
Inodes: Total: 1221600    Free: 1211354

Posté par tagger à 20:49 - 06. Commandes en vrac - Commentaires [0] - Rétroliens [0] - Permalien [#]

30 novembre 2005

Tout savoir sur votre matériel et votre configuration

(Documentation très inspirée du très excellent site lea-linux)

1. Informations concernant le matériel

Informations exhaustives sur la configuration matérielle : lshw

lshw est un petit outil pour extraire les informations détaillées de la configuration matérielle de votre machine dixit le man :-)

S'il n'est pas sur votre machine, installez-le :

# apt-get install lshw

Pour voir sa configuration, faites la commande suivante :
# lshw

Pour avoir sa configuration formatée dans un fichier Hteumeuleu (ce qui est plus propre) :
# lshw -html > lshw.html

2. Informations sur votre configuration

Lister les bibliothèques : ldconfig

Pour lister les bibliothèques qui se trouvent sous /usr/lib, /lib et dans le fichier /etc/ld.so.conf
# ldconfig -p | more

Pour rechercher une librairie :
# ldconfig -p | grep -i  ma_librairie

Posté par tagger à 01:41 - 06. Commandes en vrac - Commentaires [0] - Rétroliens [0] - Permalien [#]



« Accueil  1