Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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     sad

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

sad  sad

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 ?

waca a écrit :

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