#1 Le 01/09/2017, à 15:06
- ledisciple
[Résolu]Script shell - mot de passe
Bonjour
J'annonce la couleur, je suis débutant.
J'ai réussi à écrire ce petit script qui effectue les MAJ, export ma BDD et éteint le PC.
#!/bin/sh
sudo -i apt update && sudo -i apt -y full-upgrade && sudo -i apt autoremove
mysqldump -h localhost -u root -p football >/media/dd_livebox/page_du_www/football.sql
shutdown -P 0
Le truc, c'est qu'il me donne le mot de passe à chaque action. J'aurai voulu savoir s'il y avait une possibilité de le rentrer une fois pour toute au début du script.
Merci d'avance
Dernière modification par ledisciple (Le 26/09/2017, à 14:35)
Hors ligne
#2 Le 01/09/2017, à 15:37
- kholo
Re : [Résolu]Script shell - mot de passe
salut
oui,
tu vires les sudo dans le script et tu lances le script avec sudo
et séparer le dump de la base dans un script à part pour ne pas qu'il soit impacté par le sudo.
Dernière modification par kholo (Le 01/09/2017, à 15:38)
Hors ligne
#3 Le 15/09/2017, à 10:58
- ledisciple
Re : [Résolu]Script shell - mot de passe
Bonjour
Comme ceci ?
#!/bin/sh
apt update && apt -y full-upgrade && apt autoremove
mysqldump -h localhost -u root -p football >/media/francois@dd_livebox/page_du_www/football.sql
Retour
W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Opération non permise)
E: Impossible d'ouvrir le fichier verrou /var/lib/apt/lists/lock - open (13: Permission non accordée)
E: Impossible de verrouiller le répertoire /var/lib/apt/lists/
W: Problème de suppression du lien /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission non accordée)
W: Problème de suppression du lien /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission non accordée)
Hors ligne
#4 Le 15/09/2017, à 11:55
- Zakhar
Re : [Résolu]Script shell - mot de passe
Je pense que c'est le -i qui fait qu'il te demande à chaque fois, en principe il ne devrait te le demander qu'une fois vu que le réglage standard est 1 fois par 15 minutes (de mémoire)
Aussi, avant de faire le shutdown, un petit "sync" pour t'assurer que les données sont bien écrites ne fera pas de mal, même si shutdown devrait le faire dans (presque) tous les cas !.. (sauf cas notable du shutdown -f ....)
C'est d'autant plus recommandé que d'après le nom de la redirection tu es en train d'écrire sur un volume réseau...
Donc plutôt :
#!/bin/sh
sudo apt update && sudo apt -y full-upgrade && sudo apt autoremove
mysqldump -h localhost -u root -p football >/media/dd_livebox/page_du_www/football.sql
sync
shutdown -P now
Dernière modification par Zakhar (Le 15/09/2017, à 12:02)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#5 Le 15/09/2017, à 12:19
- kholo
Re : [Résolu]Script shell - mot de passe
+1 Zakhar
si j'explique mal, tu ne peux pas comprendre bien...
mon idée est de faire deux scripts : un pour la mise à jour, l'autre pour le dump
celui de la mise à jour peut être lancé par cron (donc root, donc pas de sudo)
infos sur cette page
pour le dump, même idée sans les problèmes de sudo
Hors ligne
#6 Le 21/09/2017, à 13:31
- ledisciple
Re : [Résolu]Script shell - mot de passe
Donc plutôt :
#!/bin/sh sudo apt update && sudo apt -y full-upgrade && sudo apt autoremove mysqldump -h localhost -u root -p football >/media/dd_livebox/page_du_www/football.sql sync shutdown -P now
Merci pour ton aide, mais il me demande toujours deux fois le mot de passe.
Une fois pour le sudo et une fois pour le dump
Hors ligne
#7 Le 21/09/2017, à 14:48
- kholo
Re : [Résolu]Script shell - mot de passe
bon,..
mkdir $HOME/bin
script 1 :
nano $HOME/bin/extinction.sh
#!/bin/bash
sudo $HOME/bin/maj.sh
mysqldump -h localhost -u root -p football >/media/dd_livebox/page_du_www/football.sql
sync
shutdown -P now
ctrl +x puis o puis entrée (pour enregistrer et fermer)
script 2 :
nano $HOME/bin/maj.sh
#!/bin/bash
apt update && apt -y full-upgrade && apt autoremove
ctrl +x puis o puis entrée (pour enregistrer et fermer)
et lancer (depuis le même utilisateur)
./extinction.sh
tu peux aussi journaliser :
./extinction.sh >> extinction.log
NB :
apt update && apt -y full-upgrade && apt autoremove
ATTENTION ; si apt update fini avec une erreur, la mise à jour n'est pas faite
le journal permettra de voir si tout s'est bien déroulé.
shutdown -P now n'a pas besoin de sudo ?
sinon, il y a
systemctl poweroff
Hors ligne