Newsgroup: it.comp.os.linux.sys
Titolo: mysqldump script in CentOS5

 
Sempre i miei problemi/idiosincrasie da debianista incallito.
 
In debian sono felicemente abituato ad utilizzare 'mysqldump' negli
script, semplicemente perchè ho messo la password di root di mysql in
~/.my.cnf, quindi se la va a prendere li e non la chiede.
 
Anche in CentOS ho messo la password in ~/.my.cnf, e se lo eseguo da
root funziona:
 
	[root@chil ~]# mysqldump mysql > /dev/null
	[root@chil ~]# 
 
Ma se lo eseguo da script in crontab, invece:
 
	Date: Thu,  1 Dec 2011 04:42:26 +0100 (CET)
	Subject: Cron <root@chil> run-parts /etc/cron.monthly
 
	/etc/cron.monthly/backup:
 
	mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to connect
 
Cosa sbaglio? Grazie.
 
-- 
  Ho ancora la forza di non tirarmi indietro, [...]
  di far la conta degli amici andati e dire ``ci vediam più tardi''
							(F. Guccini)

 ~/.my.cnf, quindi se la va a prendere li e non la chiede.
 
Un alternativa è:
 
mysqldump -u root --passoword=tuapassword
 
Nicola.
 
-- 
chi va pian va san e va lontan

Mandi! NicoKid
  In chel dì si favelave...
 
N> Un alternativa è:
N> mysqldump -u root --passoword=tuapassword
 
...e fin li ci arrivo; no, il problema è un altro: perchè mysqldump si
legge correttamente le password da ~/.my.cnf se eseguito in shell, ma
non lo fa se eseguito da cron?
 
Mi sono guardato l'environment ma non ci ho visto nulla di strano...
 
-- 
  Io, Yolande Mukagasana, dichiaro di fronte all'umanita` che chiunque
  non voglia prendere conoscenza del calvario del popolo rwandese e`
  complice dei carnefici.			(Yolande Mukagasana)

 Mi sono guardato l'environment ma non ci ho visto nulla di strano...
 
Non abbiamo visto come è fatto il tuo script. Non ho capito se lo script che 
hai messo in cron.monthly l'hai testato con cron o lanciato a mano.



 
prova con
 
mysql --defaults-extra-file=~/.my.cnf
 
pre curiosità che dice su debian
 
cat /etc/passwd|grep cron

Mandi! NicoKid
  In chel dì si favelave...
 
N> Non abbiamo visto come è fatto il tuo script. Non ho capito se lo script che 
N> hai messo in cron.monthly l'hai testato con cron o lanciato a mano.
 
Se lo lancio a mano, funziona perfettamente (nel senso che si va a
prendere la password da ~/.my.cnf).
 
Se lo lancio da crontab, mysqldump da errore diautenticazione (e quindi
non trova la password che sta in ~/.my.cnf).
 
-- 
  Meno male
  che adesso non c'e` Nerone...				(E. Bennato)

Mandi! SAP
  In chel dì si favelave...
 
S> Non è che non è attivo l'utente root sull'host "localhost"???
S> Che succede se ci metti l'IP...?
 
Insisto, da shell funziona perfettamente.
 
-- 
  Berlusconi: "Quando scendo io in campo per la sinistra non c'è scampo"
  É proprio vero che siamo un paese di poeti, santi e navigatori...

 non trova la password che sta in ~/.my.cnf).
 
E' troppo lungo da postare questo script?


> non trova la password che sta in ~/.my.cnf).
N> E' troppo lungo da postare questo script?
 
...ma il problema non è lo script!!! Contiene semplicemente:
 
	mysqldump --add-drop-table mysql | bzip2 -c9 > /var/backups/mysql.sql.bz2
 
e se eseguo il comando in console funziona; il problema è che per
qualche losco motivo se eseguo mysqldump da uno script in crontab
(specificatamente, script piazzato in /etc/cron.monthly), mysqldump non
riesce a trovare la password salvata in ~/.my.cnf .
 
-- 
  E allora osservi gli altri giocare
  e` un gioco strano devi imparare			(E. Bennato)

 riesce a trovare la password salvata in ~/.my.cnf .
 
Nicola.


 riesce a trovare la password salvata in ~/.my.cnf .
 
E con che utente viene eseguito lo script in cron-montly?
 
Hai provato a farlo eseguire con un crontab dell'utente di cui
hai la conf, con il solito crontab -e eccetera?
 
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net
 

Mandi! NicoKid
  In chel dì si favelave...
 
N> Volevo solo capire se usavi #!/bin/sh o #!/bin/bash
 
Ah, scusa. /bin/bash .
 
-- 
  La giustizia militare sta alla giustiza come la musica militare sta alla
  musica.						(George Clemenceau)

Mandi! roberto
  In chel dì si favelave...
 
r> E con che utente viene eseguito lo script in cron-montly?
 
cron-monthly è eseguito da root.
 
 
r> Hai provato a farlo eseguire con un crontab dell'utente di cui
r> hai la conf, con il solito crontab -e eccetera?
 
No, invero, ma a me servirebbe eseguirlo li...


 
 
Posso essere brutale?
Perché? ;-)


> cron-monthly è eseguito da root.
r> Allora, o rendi root identico (da quel punto di vista) all'utente
r> che ha la configurazione giusta, o passi al piano B.
 
...ma il problema É CHE ROOT É L'UTENTE CHE HA LA CONFIGURAZIONE
GIUSTA... è esattamente questo il problema... o  meglio, la cosa che
vorrei capire...
 
-- 
  Berlusconi: "Da oggi sono a dieta"
  Il Paese lo è già da 4 anni			(Il Ruggito del Coniglio)

 
Che ambiente prepara /etc/crontab per l'esecuzione di run-parts?
La differenza è al 90% lì.


> vorrei capire...
r> Che ambiente prepara /etc/crontab per l'esecuzione di run-parts?
r> La differenza è al 90% lì.
 
BINGO!
 
	HOME=/
 
Uffa, ci avevo guardato, ma evidentemente non con sufficiente
attenzione...
 
 
Grazie, e scusate tutti del thread abbastanza arido... ;(((
 
-- 
 Ragazzi, lavoriamo per il Signore:
 la paga non è un granchè, ma la pensione è roba dell'altro Mondo!!!
					(letta su una maglietta, da Stefy)

 	HOME=/
 
Occhio, se cambi HOME in run-parts, rischi che poi non funzionino
correttamente gli altri script.
 
PS: Lo so, non siamo su iniziare, ma una svista capita a tutti. :-)


Mandi! roberto
  In chel dì si favelave...
 
r> Occhio, se cambi HOME in run-parts, rischi che poi non funzionino
r> correttamente gli altri script.
 
...non ci penso nemmeno, ho ovviamente ridefinito HOME nel mio script.
;)
 
-- 
  Se non hai riso per una settimana la tua vita comincia a perdere
  significato. Soprattutto se sei cinese.		(M. Muraro)