linux:exemple_alias
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
linux:exemple_alias [2017/08/17 22:36] – pascal | linux:exemple_alias [2017/08/19 13:21] (Version actuelle) – [Partie 3 : snapshot switch (NetApp)] pascal | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
===== Le fichier ===== | ===== Le fichier ===== | ||
+ | |||
+ | Ces alias sont écris pour être utilisés avec le shell //bash//. | ||
<code bash alias.sh> | <code bash alias.sh> | ||
Ligne 42: | Ligne 44: | ||
- | ===== Explications ===== | + | ===== Explications |
- | ==== Partie 2 : architecture | + | |
- | Facilite | + | ==== Partie 1 : navigation ==== |
- | Prenons pour exemple l'architecture de dossiers | + | |
+ | Cette partie est assez basique et ne nécessite pas d' | ||
+ | |||
+ | ==== Partie 2 : arch. switch ==== | ||
+ | |||
+ | Petite explications sur la signification des codes : | ||
+ | | win | A | 061 | | ||
+ | | OS | architecture | version | | ||
+ | |||
+ | | code | signification | | ||
+ | | winX051 | Windows XP 32bit | | ||
+ | | winA052 | Windows XP 64bit | | ||
+ | | winA061 | Windows 7 64bit | | ||
+ | | rheA060 | Red Hat Enterprise Linux 6.0 64bit | | ||
+ | |||
+ | Ces alias facilitent | ||
+ | Prenons pour exemple l'arborescence | ||
< | < | ||
+- data | +- data | ||
Ligne 77: | Ligne 96: | ||
+- V2 | +- V2 | ||
</ | </ | ||
- | Pour naviguer de ''/ | + | |
+ | === ALIAS prod, test === | ||
+ | |||
+ | Agissent comme une bascule : //prod// permet de passer de //test// vers //prod// et inversement pour // | ||
+ | Pour naviguer de ''/ | ||
<code bash> | <code bash> | ||
alias test=' | alias test=' | ||
Ligne 87: | Ligne 111: | ||
</ | </ | ||
- | //sed// remplace | + | * //sed// remplace |
+ | * **si** ce répertoire existe | ||
- | De la même manière si on veut passer de ''/ | + | === ALIAS winX051, winA052, winA061, rheA060 === |
+ | |||
+ | Si on veut passer de ''/ | ||
<code bash> | <code bash> | ||
Ligne 105: | Ligne 132: | ||
fi' | fi' | ||
</ | </ | ||
+ | |||
+ | * //grep// recherche le code de l' | ||
+ | * **si** //grep// a trouvé quelque chose **alors** //sed// remplace le code d' | ||
+ | * **si** le répertoire existe on s'y rend avec //cd//\\ | ||
+ | * si rien a été trouvé par //grep// au premier test on se rend directement dans ''/ | ||
+ | |||
+ | ==== Partie 3 : snapshot switch (NetApp) ==== | ||
+ | |||
+ | Ces alias permettent de naviguer entre les snapshots.\\ | ||
+ | Les snapshots étant à la racine des volumes et les volumes tous montés dans le même répertoire alors le dossier .snapshot sera donc toujours en troisième position ''/ | ||
+ | |||
+ | === ALIAS snapin, snapout === | ||
+ | |||
+ | Permet d' | ||
+ | |||
+ | == Illustration d' | ||
+ | |||
+ | <code bash> | ||
+ | $ pwd | ||
+ | / | ||
+ | $ snapin | ||
+ | $ pwd | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | === ALIAS hourly, nightly, weekly === | ||
+ | |||
+ | Même principe, on navigue entre les snapshots hourly, nightly et weekly. | ||
+ | |||
+ | == Illustration d' | ||
+ | |||
+ | <code bash> | ||
+ | $ pwd | ||
+ | / | ||
+ | $ nightly | ||
+ | $ pwd | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | === ALIAS snap+, snap- === | ||
+ | |||
+ | Toujours la même chose, on navigue en incrémentant ou décrémentant le snapshot dans lequel on est. | ||
+ | |||
+ | == Illustration d' | ||
+ | |||
+ | <code bash> | ||
+ | $ pwd | ||
+ | / | ||
+ | $ snap+ | ||
+ | $ pwd | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | === Mise en situation === | ||
+ | |||
+ | Le but est de retrouver dans les snapshots un fichier qui a été effacé et qui se nomme " | ||
+ | |||
+ | == Les commandes sans l' | ||
+ | |||
+ | <code bash> | ||
+ | $ pwd | ||
+ | / | ||
+ | $ cd ../ | ||
+ | $ ls | ||
+ | hourly.0 hourly.1 hourly.2 hourly.3 hourly.4 nightly.0 nightly.1 nightly.2 | ||
+ | $ cd nightly.0/ | ||
+ | $ ls | ||
+ | fichier.txt | ||
+ | $ cd ../ | ||
+ | $ ls | ||
+ | fichier.txt fichier_effacé.txt | ||
+ | $ cp fichier_effacé.txt / | ||
+ | $ cd / | ||
+ | </ | ||
+ | |||
+ | == La commande avec l' | ||
+ | |||
+ | <code bash> | ||
+ | $ pwd | ||
+ | / | ||
+ | $ snapin | ||
+ | $ pwd | ||
+ | / | ||
+ | $ nightly | ||
+ | $ pwd | ||
+ | / | ||
+ | $ ls | ||
+ | fichier.txt | ||
+ | $ snap+ | ||
+ | $ pwd | ||
+ | / | ||
+ | $ ls | ||
+ | fichier.txt fichier_effacé.txt | ||
+ | $ cp fichier_effacé.txt / | ||
+ | $ snapout | ||
+ | $ pwd | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | == Explications des alias == | ||
+ | |||
+ | <code bash> | ||
+ | alias snapin=' | ||
+ | pwd | grep -qe "/ | ||
+ | if [ $? -ne 0 ]; | ||
+ | then | ||
+ | s1=`pwd | cut -d/ -f-3`; | ||
+ | s3=`pwd | cut -d/ -f4-`; | ||
+ | dir=" | ||
+ | if [ -d " | ||
+ | then | ||
+ | cd " | ||
+ | fi; | ||
+ | fi' | ||
+ | </ | ||
+ | |||
+ | * //grep// recherche par expressions régulières '/ | ||
+ | * **si** //grep// n'a rien trouvé **alors**\\ | ||
+ | * //cut// découpe le répertoire courant en prenant le caractère '/' | ||
+ | * //cut// découpe le répertoire courant en prenant le caractère '/' | ||
+ | * on crée une chaîne de caractère ' | ||
+ | * **si** ce dossier existe **alors** on s'y rend avec //cd//. | ||
+ | |||
+ | <code bash> | ||
+ | alias nightly=' | ||
+ | pwd | grep -qe "/ | ||
+ | if [ $? -eq 0 ]; | ||
+ | then | ||
+ | dir=`pwd | sed " | ||
+ | if [ -d " | ||
+ | then | ||
+ | cd " | ||
+ | fi; | ||
+ | fi' | ||
+ | </ | ||
+ | |||
+ | * //grep// recherche avec une expression régulière "/ | ||
+ | * **si** quelque chose est trouvé **alors** //sed// remplace " | ||
+ | * **si** ce répertoire existe **alors** on s'y rend avec un //cd//. | ||
+ | |||
+ | <code bash> | ||
+ | alias snap+=' | ||
+ | [[ `pwd` =~ (.*\.snapshot/ | ||
+ | dir=" | ||
+ | if [ -d " | ||
+ | then | ||
+ | cd " | ||
+ | fi' | ||
+ | </ | ||
+ | |||
+ | * **si** //bash// trouve dans le répertoire courant (//pwd//) " | ||
+ | * //bash// numérote ses variables en suivant les parenthèses ouvrantes dans l' | ||
+ | * **et** on crée une chaîne avec ce que //bash// a trouvé | ||
+ | * '< | ||
+ | * ''< | ||
+ | * '' | ||
+ | * ''< | ||
+ | * ''< | ||
+ | * **si** le répertoire créé avec la chaîne " | ||
+ |
linux/exemple_alias.1503002190.txt.gz · Dernière modification : 2017/08/17 22:36 de pascal