Nom du script: my_sqldump.sh
Compatible avec : sh
Descriptif:
Dump de vos bases de données mysql dans un tarball.
Pré-requis:
mysql installé ;-)
Points d'intérêt:
* le script peut très bien être appelé par un shell/cron de backup par exemple.
Version imprimable
Nom du script: my_sqldump.sh
Compatible avec : sh
Descriptif:
Dump de vos bases de données mysql dans un tarball.
Pré-requis:
mysql installé ;-)
Points d'intérêt:
* le script peut très bien être appelé par un shell/cron de backup par exemple.
Nom du script: push.bashrc
Ecrit pour : bash, a sourcer depuis le .bashrc (ou équivalent)
Descriptif: Ensemble d'alias autour des commandes pushd, popd et dirs de bash. Cette famille de commandes permet d'empiler des répertoires pour ensuite se déplacer plus rapidement d'un répertoire de la pile à un autre. Voyez ça comme un "cd -" boosté. On peut même se référer à un répertoire de la pile à l'aide des raccourcis ~1, ~2, etc depuis tout autre lieu.
Les apports du script sont les suivants:
- un affichage lisible des répertoires empilés: rappel du numéro du répertoire dans la pile, un résultat par ligne.
- l'alias "p" sur "pushd" (pour se rendre au répertoire ~1, ou pour empiler un nouveau répertoire en présence d'arguments), "p1" sur "pushd +1", etc. pour se rendre au i-ème répertoire ; cet alias affiche la liste des répertoires.
- l'alias "d" sur "dirs" qui affiche la liste des répertoires. En présence d'un argument, seuls les répertoires matchant la regex passée sont affichés.
- l'alias "g" (comme dans "go") qui va chercher les répertoires qui matchent la regex en paramètre. Si un seul répertoire est trouvé, il devient le nouveau répertoire courant.
Pré-requis: bash
Téléchargement: [Visualiser] -- [Autres scripts]
Tiens un remplaçant : whatismyip.akamai.com ;)
Remplace ton site par celui-ci :)
Je l'utilise celui-ci depuis bien longtemps déjà.
Code:wget -qO- http://www.whatismyip.com/automation/n09230945.asp
Un autre au cas ou : whatismyip.fr/raw/
;)
Bonjour,
Pour la récupération de son IP publique, un petit dernier :
Et toute sa syntaxe qui va avec expliquée là : ifconfig.meCode:curl ifconfig.me
;)
Bonjour,
suite à mon message concernant zenity (http://www.developpez.net/forums/d15...ist-from-file/, j'ai pri un peu de temps pour écrire le script ci-dessous.
Il ne fait rien de bien exceptionnel et le code doit pouvoir être simplifié, il m'a surtout permis de me faire la main sur quelques commandes que je ne maîtrise pas aussi bien que je le voudrais (sed, awk, zenity)
Je vous le livre tel quel, n'hésitez pas à commenter, corriger, améliorer.
Nom du script: Util_V1
Compatible avec: Bash
Descriptif: Permet des actions de recherche, de mise à jour, d'installation etc.... (voir fichier d'aide)
Pré-requis: le paquetage zenity
Testé sous ubuntu et variantes
En PJ:
le script,
le fichier texte d'explications
Pièce jointe 172858
Nom du script : pskill.sh
Compatible avec: Bash
Descriptif : pskill permet d'envoyer un signal à un processus homogene à un nom de programme. Par defaut, il envoie le signal de mort.
Pré-requis: bash
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95 #!/bin/bash #author : marc AUTRAN #Email : xxxxxx@xxxxx.xx #date : 22 dec 2002 #description : script shell qui envoie un signal à un processus verifiant une expression reguliere #le signal est envoye via la commande kill #la commande kill respecte la synthaxe suivante : kill -n signal processus #ce script fut teste sous linux noyau 2.2.16 #traite l'option -h for option do if [ "$option" = -h ] then echo 'Usage pskill.sh [-q] [-v] [-h] [-sig] <expression reguliere> ' echo "Permet d'envoyer un signal via la commande kill aux processus dont la commande verifie <expression reguliere>" echo '-q : query, demande confirmation pour chaque processus' echo '-v : verbeux, affiche ce qui est fait' echo "-h : affichage de ce message d'aide" echo "-sig : ou sig est un signal, utilisation de ce signal au lieu du signal par defaut (SIGTERM). sig peut etre numerique ou symbolique selon ce qu'accepte la commande kill" exit fi done #traite les options -q -v et -signal declare -i compteur=0 s=0 v=0 q=0 while [ $# -gt 1 ] do case $1 in -v ) echo 'debut de traitement ...' v=1 shift;; -q ) q=1 shift;; -* ) s=$1 shift;; esac compteur=compteur+1 if [ $v = 0 ] &&[ $q = 0 ] && [ $s = 0 ] then break fi if [ $compteur = 3 ] then break fi done if [ $q = 0 ] then if [ $s = 0 ] then signal=SIGTERM #le signal par defaut est SIGTERM else signal=`echo $s | cut -c2-6` #recupere le signal fi processus=`ps -e | grep $1 | cut -c1-6` #trouve le pid du process kill -n $signal $processus #envoie le signal au processus cible if [ $v = 1 ] then echo "signal $signal envoye a $1" fi else #mode query echo "voulez vous killer $1 o n" read r if [ "$r" = o ] then if [ $s = 0 ] then signal=SIGTERM else signal=`echo "$s" | cut -c2-6` fi processus=`ps -e | grep $1 | cut -c1-6` kill -n $signal $processus if [ $v = 1 ] then echo "signal $signal envoye a $1" fi fi fi if [ $v = 1 ] then echo 'fin de traitement' fi
Nom du script rename.sh
Compatible avec: Bash
Descriptif : rename.sh permet de renomer des fichier conformement à une expression régulière.
Vous trouverez l'usage de ce scripts en utilisant l'option -h de cet executable.
Pré-requis: bash
Code :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 #!/bin/bash #author : marc AUTRAN #Email : xxxxxx@xxxxx.xx #date : 22 dec 2002 #description : script shell qui renome des fichiers conformement a une expression reguliere #le renomage se fait via la commande mv #ce script fut teste sous linux noyau 2.2.16 #traite l'option -h for option do if [ "$option" = -h ] then echo 'Usage rename.sh [-q] [-v] [-h] <commande> fichier ...' echo 'Renome les fichiers en appliquant la commande sur les noms' echo '-q : query, demande confirmation pour chaque fichier' echo '-v : verbeux, affiche ce qui est fait' echo "-h : affichage de ce message d'aide" exit fi done #traite les options -q et -v declare -i compteur=0 v=0 q=0 while [ $# -gt 2 ] do case $1 in -v ) echo 'debut de traitement ...' v=1 shift;; -q ) q=1 shift;; esac compteur=compteur+1 if [ $v = 0 ] &&[ $q = 0 ] then break fi if [ $compteur = 2 ] then break fi done if [ $q = 0 ] then for name do if [ "$name" != "$1" ] then new_name=`echo $name | $1` #determine le nouveau nom mv $name $new_name if [ $v = 1 ] then echo "$name renome en $new_name" fi fi done else for name do if [ "$name" != "$1" ] then new_name=`echo $name | $1` echo "voulez vous renomer $name en $new_name o n " read r if [ "$r" = o ] then mv $name $new_name if [ $v = 1 ] then echo "$name renome en $new_name" fi fi fi done fi if [ $v = 1 ] then echo 'fin de traitement' fi
Bonjour,
les options d'un script devraient être traitées avec getopts.
il y a une faute de frappe ligne 40 : &&[.
les nombres devraient être comparés avec un opérateur arithmétique :test $n = 0-> test $n -eq 0 (cf. help test); voire avec une simple évaluation arithmétique : if ((!n)); then;...; fi. .
new_name=`echo $name | $1` ça semble une erreur, que veux-tu faire ici ?
il vaudrait mieux tester l'existence de $q dans une seule boucle, plutôt que de faire deux boucles quasi identiques dans le test.
rename existe (pas sur tous les systèmes GNU/linux ?), et utilise des regex perl.
pkill existe, et utilise des regex étendues.
Bonjour,
tout d'abord, ces 2 scripts et particulièrement rename.sh ont été écrits il y a 13 ans pour un TP lorsque j'étais étudiant. Depuis, j'imagine que ces fonctionnalités sont devenues des standard du shell. Mais à l'époque rien n'existait sinon je ne les auraient pas inventés.
Pour le &&[ tu as raison il faut && [
Quant au new_name=`echo $name | $1`, je souhaitais traiter, ou plutôt je traitais $1 qui contenait le nom de la commande et $name le nom du fichier ;) ... quand je disais que rien n'existait à l'époque, peut etre que le rename actuel ne prend traite pas cette option.
Pour les tests tu as sans doute raison, je ne suis pas assez bon en bash pour me prononcer. En fait à cette époque dans cette école d'ingénieur, on parlait essentiellement C et C++ je n'ai fait ces 2 scripts que pour un cours de shell.
marc,
N_BaH,
Je viens également de me rendre compte :oops: que tu avais masqué l'adresse mail dans le script.
Je ne savais pas qu'il fallait l'enlever, j'ai fait un copier coller brut. De toute façon cette adresse a été résilié depuis 10 ans que j'ai quitté l'ENSTA
alors mille excuses pour cette maladresse :(
Marc
pourquoi les poster maintenant ?Citation:
ces 2 scripts [...] ont été écrits il y a 13 ans
certains débutant pourraient, d'ailleurs, prendre tes maladresses pour exemple. :?
j'ai masqué l'adresse e-mail pour te protéger : une jolie fille ne devrait pas porter un t-shirt indiquant son 06.
Nom du script: Lecteur mp3 en ligne de commande
Compatible avec: Bash
Descriptif: Remplacer vlc ou autre player pour écouter de la musique sur son PC. Ce script peut être lancé avec trois paramètres : le dossier, la lecture (séquentielle ou aléatoire) ainsi que, le cas échéant, la durée au bout de laquelle il va s'arrêter de lui même. C'est pratique par exemple pour en faire un réveil "croné".
Pré-requis: le paquetage mpg123
Améliorations à prévoir:
- Non pas imposer une arborescence mais offrir la possibilité d'en parcourir une à partir d'une base choisie.
- J'ai un bug ligne 84, si la valeur n'est pas définie.
Code:
Citation:
#!/bin/bash
# =============================================================================
# mp3 player
# Alain BACH le 15/09/2015
# =============================================================================
basepath=/home/$LOGNAME/Musique
# clear
echo "$1 $2 $3"
choix=$1
ordre=$2
temps=$3
if [ "x$1" = "x" ];
then
echo "A - Musique des années 80 : France"
echo "B - Musique des années 80 : International"
echo "C - Musique des années 80 : TOUT"
echo "D - Musique classique"
echo " "
echo "Faites votre choix"
read choix
echo " "
echo "R - Ordre aléatoire"
echo "S - Ordre séquentiel"
echo " "
read ordre
echo " "
echo "Quelle temporisation (en minutes) ?"
read temps
$temps=$temps*60
elif [ "x$2" = "x" ]
then
echo " "
echo "R - Ordre aléatoire"
echo "S - Ordre séquentiel"
echo " "
read ordre
choix=$1
echo " "
echo "Quelle temporisation (en minutes) ?"
read temps
$temps=$temps*60
fi
case $ordre in
S | s )
ordre=""
;;
R | r )
ordre="-Z"
;;
* )
ordre=""
;;
esac
case $choix in
A | a )
chemin=$basepath"/annees\ 80/France"
commande="find "$chemin" -iname "*.mp3" | mpg123 $ordre -q --list -"
;;
B | b )
chemin="$basepath/annees\ 80/International"
commande="find "$chemin" -iname "*.mp3" | mpg123 $ordre -q --list -"
;;
C | c )
chemin="$basepath/annees\ 80"
commande="find "$chemin" -iname "*.mp3" | mpg123 $ordre -q --list -"
;;
D | d)
chemin="$basepath/classique"
commande="find "$chemin" -iname "*.mp3" | mpg123 $ordre -q --list -"
;;
esac
if [ $temps -gt 0 ] ;
then
commande="$commande & sleep $temps && pid1=\$! && kill \$pid1"
fi
clear
echo " "
echo "$commande"
eval $commande
exit 0;
Nom du script: Sauvegarde des données
Compatible avec: Bash
Descriptif:Je suis un peu maniaque en ce qui concerne la sauvegarde de mes données... souvenir d'un temps où j'exerçais des responsabilités dans ce domaine.
Je me suis donc attelé à écrire une stratégie de sauvegarde "à ma façon", en tenant compte des possibilités dont je dispose.
Ces possibilités, quelles sont-elles :
- Un disque externe de 1To branché en USB3 sur mon PC
- Un Raspberry connecté en filaire sur mon réseau
- Un cloud hébergé sur mon site Internet chez OVH
- Un cloud chez Adrive
Je voulais aussi rapatrier les sites Internet que je gère pour les sauvegarder et sauver les machines virtuelles que j'utilise.
J'ai analysé les flux pour optimiser les temps en fonction des goulots d'étranglements et me permettre de reprendre la main le plus vite possible sur mon PC et reprendre le cours normal de mes activités.
Je voulais rendre cette sauvegarde souple, me permettant de lancer l'un, l'autre ou tous les éléments selon mon envie ou mon besoin tout en intégrant une planification en fonction du jour de la semaine.
Le résultat ? le voilà.
J'en parle aussi sur mon site Internet personnel.
Pré-requis: le paquetage mpg123 pour la notification sonore.
Nota : le programme principal, celui à lancer, est sauvegarde.sh
Le programme : Pièce jointe 188110
Bonjour,
Citation:
J'ai un bug ligne 84, si la valeur n'est pas définie.
ouCode:if test ${temps:-0} != 0
pourquoi une variable commande alors que la commande est toujours la même ?Code:if ((temps))
de toute façon, une variable n'est pas faite pour stocker une commande qui doit être exécutée, utilises plutôt une fonction.
sleep ne retourne jamais 'faux'; à moins qu'il lui manque un paramètre, ou que ce dernier ne soit pas numérique, mais, ça, il faut le tester avant d'appeler la commande.