#1 Le 16/04/2012, à 06:59
- waca
Un script qui se lance SANS user de connecté !
Bonjour à tou(te)s,
Ubuntu11.04
J'ai actuellement un script qui sauvegarde ma base sql vers ma dropbox
mysqldump -h localhost -u amoi -amoi Amoi --add-drop-table > /home/zorro/Dropbox/amoi.sql
Grâce à "tâches planifiées", ce script se lance toutes les heures.....
MAIS, il faut évidemment que je sois connecté.....
OR,
je voudrais maintenant que ce script se lance toute les heures MÊME si je ne suis pas logué, alors qu'il y a encore le choix des users à l'écran quoi !
Comment faire svp ?
Merci d'avance.
Waca
Hors ligne
#2 Le 16/04/2012, à 08:24
- gl38
Re : Un script qui se lance SANS user de connecté !
As-tu lu cette page ?
Cordialement,
Guy
Hors ligne
#3 Le 16/04/2012, à 09:15
- waca
Re : Un script qui se lance SANS user de connecté !
Merci, mais mon soucis c'est que j'ai mis dans le crontab une commande pour sauvegarde ma base sql.
00 02 * * * moi mysqldump -h localhost -u laurux -plaurux Laurux --add-drop-table > /home/moi/Dropbox/Backup/LauruxBackup/Laurux.sql
Hé ben, le cron se lance (c'est déjà ça), mais, le fichier généré en sortie Laurux.sql est à 0
Pourquoi la base ne se copie pas, alors que si je suis 'logué'; la base est bien sauvegardée korekmon !
Merci.
Waca
Hors ligne
#4 Le 16/04/2012, à 09:42
- credenhill
Re : Un script qui se lance SANS user de connecté !
hello
avec cron il n'y a pas de login, donc l'environnement est différent et le shell par défaut est /bin/sh
essayer en ajoutantf SHELL=/bin/bash au début du crontab
Hors ligne
#5 Le 16/04/2012, à 09:55
- waca
Re : Un script qui se lance SANS user de connecté !
Ben alors j'ai essayé
en début du cron
ajouter cette ligne
SHELL=/bin/bash et juste en dessous ma ligne à moi
00 02 * * * mysqldump -h localhost -u laurux -plaurux Laurux --add-drop-table > /home/moi/Dropbox/Backup/LauruxBackup/Laurux.sql
le résultat me renvoi toujours un fichier vide.
Ensuite j'ai testé :
00 02 * * * SHELL=bin/bash/mysqldump -h localhost -u laurux -plaurux Laurux --add-drop-table > /home/moi/Dropbox/Backup/LauruxBackup/Laurux.sql
idem : fichier vide
Hors ligne
#6 Le 16/04/2012, à 10:02
- Postmortem
Re : Un script qui se lance SANS user de connecté !
Salut,
Peut-être comme ça :
00 02 * * * /bin/bash -c 'mysqldump -h localhost -u laurux -plaurux Laurux --add-drop-table > /home/moi/Dropbox/Backup/LauruxBackup/Laurux.sql'
Dernière modification par Postmortem (Le 16/04/2012, à 10:02)
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#7 Le 16/04/2012, à 10:02
- gl38
Re : Un script qui se lance SANS user de connecté !
Dans la ligne de crontab, je ne comprends pas pourquoi il y a moi avant mysqlsump.
Il devrait y avoir
00 02 * * * mysqldump -h localhost -u laurux -plaurux Laurux --add-drop-table > /home/moi/Dropbox/Backup/LauruxBackup/Laurux.sql
Cordialement,
Guy
Hors ligne
#8 Le 16/04/2012, à 10:05
- gl38
Re : Un script qui se lance SANS user de connecté !
Et le crontab doit être rempli avec la commande
crontab -e
Cordialement,
Guy
Hors ligne
#9 Le 16/04/2012, à 10:12
- waca
Re : Un script qui se lance SANS user de connecté !
Le moi c'est mon nom d'utilisateur, mais comme tu m'as dit qu'avec cron y'a pas de login, je l'ai donc supprimé.
pour parametrer le crontab je fais
sudo crontab -e
car si je fais simplement
crontab -e je ne peux PAS enregistrer ma modif
Hors ligne
#10 Le 16/04/2012, à 10:18
- waca
Re : Un script qui se lance SANS user de connecté !
Merci encore à tou(te)s,
Donc via
sudo crontab -e
la bonne commande :
00 02 * * * /bin/bash -c 'mysqldump -h localhost -u laurux -plaurux Laurux --add-drop-table > /home/moi/Dropbox/Backup/LauruxBackup/Laurux.sql'
Bingo; là c'est ok.
Merci encore.
Waca
Hors ligne
#11 Le 16/04/2012, à 10:22
- Postmortem
Re : Un script qui se lance SANS user de connecté !
En faisant sudo crontab -e, il me semble que tu utilises la contab de root et non celle de ton utilisateur.
C'est curieux que tu ne puisses pas sauvegarder ta propre contab.
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#12 Le 16/04/2012, à 10:24
- waca
Re : Un script qui se lance SANS user de connecté !
Tant que j'y suis....
J'ai 1 commande mysql à lancer à 02 du mat (par exemple), mais pour accèder à mysql, il m'est demandé le passwd mysql, or, la nuit je dors, enfin j'essaie....
Voici ce que je cherche à faire :
1°) programmer un reboot à 01H30
2°) lancer mysql -u root -p mais là il faut saisir un passwd
3°) une fois dans mysql , j'ai la commande
grant all privileges to laurux@localhost identified by 'passwd';
Alors comment dans 2°) rentrer le passwd en automatique (ou passer outre)
Est-ce que 3°) est un cron à part entière ?
Waca
Hors ligne
#13 Le 16/04/2012, à 10:37
- gl38
Re : Un script qui se lance SANS user de connecté !
Pour mysql tu n'as qu'à faire comme pour mysqldump : coller le mot de passe au -p
De la doc:
Utiliser mysql est très simple. Il suffit de le démarrer comme ceci :
shell> mysql db_name
ou :
shell> mysql --user=user_name --password=your_password db_name
Tapez une commande SQL, puis terminez-la avec ‘;’, ‘\g’ ou ‘\G’, et finissez avec entrée.
Vous pouvez exécuter un script avec :
shell> mysql db_name < script.sql > output.tab
Cordialement,
Guy
Hors ligne
#14 Le 16/04/2012, à 10:40
- Postmortem
Re : Un script qui se lance SANS user de connecté !
Salut,
Pour le mot de passe, tu peux le mettre directement dans ta commande.
Tu pourrais mettre ta commande grant dans un fichier.sql puis :
mysql -u root -pPASSWORD NOM_BASE < /chemin/fichier.sql
Edit : grillé par gl38 !
Dernière modification par Postmortem (Le 16/04/2012, à 10:41)
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#15 Le 16/04/2012, à 10:46
- waca
Re : Un script qui se lance SANS user de connecté !
Merci encore, alors je fais une ligne cron avec :
mysql -u root -pMonPasswd;grant all privileges to chezmoi@localhost identified by 'MaBase';exit
Dernière modification par waca (Le 16/04/2012, à 11:08)
Hors ligne
#16 Le 16/04/2012, à 11:02
- gl38
Re : Un script qui se lance SANS user de connecté !
Ce n'est pas ce que dit la doc !
Tu devrais ajouter à la fin de ligne de commande
2 > /tmp/erreur
pour récupérer les messages d'erreur.
Cordialement,
Guy
Hors ligne
#17 Le 16/04/2012, à 11:07
- waca
Re : Un script qui se lance SANS user de connecté !
Hum, déjà avec cette commande, ça me dit :
Command "grant" non trouvée, vouliez-vous dire :
La commande "gant" issue du paquet "gant" (universe)
Cette réponse me laisse penser que je ne rentre mm pas en mysql, alors qu'il lit bien jusqu'a la commende grant
Hors ligne
#18 Le 16/04/2012, à 11:08
- Postmortem
Re : Un script qui se lance SANS user de connecté !
Tu créés un fichier autorisations.sql dans un répertoire qui contient ceci :
grant all privileges to laurux@localhost identified by 'passwd';
Puis dans la crontab tu mets :
/bin/bash -c 'mysql -u root -pPASSWORD NOM_BASE < /chemin/vers/repertoire/autorisations.sql &> /tmp/autorisations.log'
Dernière modification par Postmortem (Le 16/04/2012, à 11:09)
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#19 Le 16/04/2012, à 11:25
- gl38
Re : Un script qui se lance SANS user de connecté !
Tu as dit qu'il faut que tu mettes sudo devant crontab -e pour pouvoir sauver.
Ce n'est pas normal : tu devrais être propriétaire du fichier qui te concerne dans le dossier
/var/spool/cron/crontabs
et tu as dû utiliser sudo une fois de trop auparavant.
Cordialement,
Guy
Hors ligne
#20 Le 16/04/2012, à 14:16
- waca
Re : Un script qui se lance SANS user de connecté !
Alors voilà le résultat, ou plutot le 'non' résultat.
J'ai bien créé le fichier, comme je n'ai pas eu de 'log' de créé, je me suis dit, peut-être qu'il faut que le
autorisations.sql doit exécutable, donc je l'ai mis en exécutable, mais bon, ça n'a rien changé. Je n'ai PAS de fichier log en retour.
Dit en passant, le autorisations.sql doit-il ou non être 'executable' ?
Pour le crontab -e
En fait quand je fais
$crontab -e donc pas en 'root'
le fichier s'ouvre avec mc
il semble que l'enregistrement se fasse (car pas de msg d'erreur en cliquant sur "Enregi"), mais si je quitte (par F10/Quit) j'ai :
Erreur
Impossible d'enregistrer le fichier /home/moimeme/.mc/ini : permission non accordée
Je n'ai pas cette erreur par un
sudo crontab -e
Voila.
Hors ligne
#21 Le 16/04/2012, à 14:32
- Postmortem
Re : Un script qui se lance SANS user de connecté !
Je ne crois pas qu'il y ait besoin que le fichier sql soit exécutable.
Quelle ligne mets tu exactement dans la crontab ?
Erreur
Impossible d'enregistrer le fichier /home/moimeme/.mc/ini : permission non accordée
Je n'ai pas cette erreur par un
sudo crontab -e
Vu l'erreur, je pense que ta crontab est bien mise à jour.
Tu peux le vérifier en faisant crontab -l (-L en minuscule ; sans sudo).
L'erreur se produit lors de la sortie de mc, tu devrais avoir le droit d'écrire dans l'emplacement /home/moimeme/.mc/ini.
Tu pourrais faire ceci afin de te réattribuer les droits du dossiers :
sudo chown -Rh moimeme /home/moimeme/.mc
En remplaçant moimeme par ton nom de user bien évidemment ! (enfin, c'est peut-être moimeme ton nom ?!)
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#22 Le 16/04/2012, à 14:52
- waca
Re : Un script qui se lance SANS user de connecté !
Ok, avec le chown -Rh j'ai plus d'erreur, et un crontab -l me montre bien que les modifs sont bien enregistrées.
Voici ma commande dans le crontab
47 23 /bin/bash -c 'mysql -u root -pMonPass Laurux < /home/igor/Temp/autorisations.sql &> /tmp/autorisation.log'
Le fichier autorisations.sql contient bien la ligne que tu m'indiquais précédemment, et ce fichier est bien dans
/home/igor/Temp
Ne te fie pas à l'heure, je suis en NlleCalédonie; l'heure est la bonne !
Merci d'avance.
Waca
Hors ligne
#23 Le 16/04/2012, à 15:01
- Postmortem
Re : Un script qui se lance SANS user de connecté !
Il manque des champs dans ta ligne de crontab, à moins que tu aies juste oublié de les copier ici ; la ligne doit ressembler à ça :
47 23 * * * /bin/bash -c 'mysql -u root -pMonPass Laurux < /home/igor/Temp/autorisations.sql &> /tmp/autorisation.log'
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#24 Le 16/04/2012, à 15:03
- waca
Re : Un script qui se lance SANS user de connecté !
Oui oui, j'avais juste oublié de les recopier, j'ai bien les
3 *
47 23 * * * /bin/bash -c 'mysql -u root -pMonPass Laurux < /home/igor/Temp/autorisations.sql &> /tmp/autorisation.log'
Hors ligne
#25 Le 16/04/2012, à 15:21
- Postmortem
Re : Un script qui se lance SANS user de connecté !
Essaie peut-être dans la crontab de root, en faisant sudo crontab -e.
Sinon, je ne vois pas trop.
Ou alors, essaie en renseignant le chemin complet vers l'utilitaire mysql.
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne