Autore Topic: Crontab Aiuto  (Letto 9692 volte)

Offline Silverino

  • Jr. Member
  • **
  • Post: 26
    • Mostra profilo
Crontab Aiuto
« il: 16 Gennaio 2012, 14:02:00 »
Ciao ragazi agazzi non riesco a schedulare un backup di mysql,dove sbaglio
io eseguo queste operazioni:
- mi preparo lo script di mysqldump e mi accerto che funzioni
- apro crontab attraverso nano ed inserisco 30 14 * * * script dimysqldump
salvo e aspetto
ma niente non funge........

Offline LonelyWolf

  • Moderator
  • Hero Member
  • *****
  • Post: 1396
    • Mostra profilo
    • Traversate dei laghi
Re: Crontab Aiuto
« Risposta #1 il: 16 Gennaio 2012, 14:53:28 »
Eseguito manualmente lo script funziona correttamente ma non da crontab?
Che permessi ha il file?

Offline smeserver

  • Hero Member
  • *****
  • Post: 1313
    • Mostra profilo
Re: Crontab Aiuto
« Risposta #2 il: 16 Gennaio 2012, 14:53:50 »
allora..

per prima cosa, su linux TUTTO è loggato.. se qualcosa NON funziona, prima di postare guarda i log, perchè senza informazioni da parte tua noi ne sappiamo meno di te :-)

/var/log/messages e /var/log/cron sono i file di tuo interesse

alcune domande:
- lo script è eseguibile? cioè ha i permessi di esecuzione?
- lo script, in crontab, lo metti con il percorso completo?
- sei certo che quella riga compaia in crontab? a mio parere ti conviene creare un file in /etc/cron.d

Offline Silverino

  • Jr. Member
  • **
  • Post: 26
    • Mostra profilo
Re: Crontab Aiuto
« Risposta #3 il: 16 Gennaio 2012, 15:24:27 »
Grazie per i vostri post,
purtoppo non ho molta esperienza su centos, lo scrip in oggetto  l'ho inserito aprendo il crontab con l'editor nano, nonso se ho i permessi per eseguirlo, pe ri logs ho ne /var/logs solo 3 file cron cron1 cron2 ma non trovo nessuno rifeimento al mio script.
ma è cosi' difficile inserire una schedulazione con centos?
- lo script compare nel crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
55 13 * * * mysqldump -u xxxxx --opt -p xxxxxxx nomedatabase >
/mnt/backup/nomedatabase`date -I`.sql
« Ultima modifica: 16 Gennaio 2012, 15:33:57 da Silverino »

Offline smeserver

  • Hero Member
  • *****
  • Post: 1313
    • Mostra profilo
Re: Crontab Aiuto
« Risposta #4 il: 16 Gennaio 2012, 15:50:30 »
la riga da te inserita è sintatticamente scorretta, per i seguenti motivi:
- manca l'utente con il quale lo script verrà eseguito (infatti le voci precedenti hanno root davanti)
- dai per scontato che nel percorso (il path) del contesto di cron sia presente mysqldump, invece di invocarlo col percorso completo

inoltre:
- ti conviene creare uno script semplice dove inserisci tutte le istruzioni.. ti avevo già segnalato di cercare con google, ma pare tu non l'abbia fatto.. -> http://paulbradley.tv/38/ leggilo BENE, li c'è tutto quello che serve
- tu dai per scontato che /mnt/backup sia montato correttamente.. se per qualche motivo non lo fosse, tu scriveresti il backup sulla dir fisica, con i seguenti effetti collaterali:
  + riempimento dell'hd
  + impossibilità successivamente di montare la share di windows

aggiungo che, stante l'errore sintattico nel file crontab, sono *moderatamente* sicuro che o in /var/log/cron o in /var/log/messages ci sia informazione in merito

senza voler essere polemico o "salire in cattedra", ti consiglio di prendere seriamente in considerazione l'idea di imparare prima i semplici comandi per visualizzare un file di log, cercare/filtrare le informazioni in esso contenute, capire cosa stai facendo e cosa non va.. e, per fare tutto questo, google e le varie man page sono a tua disposizione; altrimenti "pretendi" di correre quando fai fatica a camminare. hint: grep, cat, more, less

ti invito inoltre a non fare confronti tra windows e linux/Centos sulla facilità o meno di far o non fare le cose: su centos, in 30 secondi faccio tutte le schedulazioni che voglio con la certezza che funzionano (o, in caso contrario, con feedback che mi dica perchè non lo fanno), che ho una email a task terminato, che una volta settato mi dimentico, ed il tutto senza aver bisogno di finestre, mouse o altre amenità del genere.. sono *moderatamente* sicuro che su altre piattaforme non sia così.

Offline Silverino

  • Jr. Member
  • **
  • Post: 26
    • Mostra profilo
Re: Crontab Aiuto
« Risposta #5 il: 16 Gennaio 2012, 16:26:58 »
Ciao non voglio neanche io entrare in polemica,
ma comunque sei salito in cattedra ed è facile rispondere in quel modo, ma come tu ben saprai tra la teoria e la pratica c'è molta differenza, e credo che i forum servano proprio a questo, a confronatarsi e a fornire esperienze, io non cerco la soluzione già pronta al problema ma cerco di capire ed approfondire con chi ha piu' esperienza di me, il ruolo di moderatore non da' il diritto di bacchettare o essere sopra le parti, poi se in questo forum bisogna aprire discussioni solo ad alto livello, escludendo tutti coloro che vogliono avvicinarsi al mondo dell'Open Source, ebbene questo è una chiusura all'Open.

Offline LonelyWolf

  • Moderator
  • Hero Member
  • *****
  • Post: 1396
    • Mostra profilo
    • Traversate dei laghi
Re: Crontab Aiuto
« Risposta #6 il: 16 Gennaio 2012, 17:09:55 »
Ora che ci siamo chiariti torniamo al problema.

@smeserver:
Scrivere di usare google non viene percepito da nessuno come un aiuto, in particolar modo da chi è inesperto non sapendo cosa cercare; ti chiedo di "ammorbidire" un po' le tue risposte (nella discussione: Log Freeradius 2 sei stato molto più bravo! ;) )

@Silverino:
Come ti avevo scritto in un precedente post: man crontab e se tu lo avessi letto avresti saputo che per inserire una schedulazione basta dare il comando: crontab -e dalla console e lì avresti inserito il tuo comando; come scrive smeserver sarebbe meglio avere uno script a parte che monta la cartella di backup, esegue il dump e smonta la cartella richiamato da cron.
(P.S. smeserver non è un moderatore)

Non si aprono solo discussioni di alto livello, è solo che prima ci si documenta un po' e poi si chiede dando tutte le informazioni necessarie; difficilmente in un forum "linux" troverai una risposta che ti "guida i click", di solito si risponde sempre dando indicazioni sul come ottenere il risultato perchè non è windows.
Sembra più difficile all'inizio solo perchè devi sapere quello che fai quando lo fai ed una volta impostato tutto non lo tocchi più e sei sicuro che non sbaglia.

Offline smeserver

  • Hero Member
  • *****
  • Post: 1313
    • Mostra profilo
Re: Crontab Aiuto
« Risposta #7 il: 16 Gennaio 2012, 17:11:47 »
ritengo il tuo modo di vedere le cose errato.

rileggendo i topic da te aperti, tu devi "semplicemente" (virgolettato apposta, perchè è un concetto relativo) fare il dump di uno o più db mysql secondo una schedulizzazione temporale riponendo i backup su una share remota.

in tutti i topic ti sono state fornite chiavi di ricerca per google e suggerimenti su quali programmi usare e le man pages di riferimento; tutte le informazioni che ti sono state fornite non sono state buttate a casaccio, ma, almeno da me, dopo aver effettuato la ricerca per vedere se c'erano voci interessanti.

il problema è che l'unico feedback che abbiamo avuto da te è, semplicemente (senza virgolette) "non funziona" e, più volte "possibile che sia così difficile fare le cose con centos?"

posizioni che mi fanno pensare che o non hai cercato oppure non hai letto

nessuna chiusura da parte mia/nostra, ovvio, ma visto che stai parlando di fare un backup (i.e. copie di sicurezza) di dati, ritengo che sia fondamentale capire piuttosto che fare..

se tu avessi provato e ci avessi detto "non funziona, ottengo questo errore, ho seguito questa guida al link taldeitali ma si blocca al questo passaggio" allora il discorso sarebbe diverso.

il "non funziona" ci è assolutamente inutile, soprattutto perchè sei tu per primo che ci devi dare informazioni.

se ti dico/diciamo "guarda nei log", se non lo sai fare, basta dirlo e ti si dice come fare

solo per sapere, avevi letto la pagina che ti ho indicato prima?
hai cercato su google e letto le man pages come ti è stato suggerito qui: http://www.centos-italia.org/index.php/topic,2525.msg8572.html#msg8572?

se SI, allora dicci cosa NON hai capito, dove hai problemi, altrimenti pare (P A R E) che tu bellamente ignori quanto ti viene detto

e, di nuovo, non fare confronti tra S.O. diversi, dimentica che usi windows quando usi centos e viceversa..

Offline Silverino

  • Jr. Member
  • **
  • Post: 26
    • Mostra profilo
Re: Crontab Aiuto
« Risposta #8 il: 16 Gennaio 2012, 17:31:38 »
Ciao avevo percepito il tuo post come un richiamo per chi non avesse voluto cercare e studiare la soluzione da solo, ho macinato pagine e pagine su google e grazie anche ai confronti che ho avuto con te ho le idee piu' chiare su determinati argomenti, ma chiaramente ho delle lacune che cerco di colmare studiando ( anzi colgo l'occasione sto aspettando con ansia il manuale Linux che proprio su questo forum consigliano vivamente)cmq sia  ci sono degli aspetti ( architettura del software) che ancora non ho mandato giu', nel caso specifico questa maledetta schedulazione prorpio non ne vuole sapere, chiaramente è colpa della mia ignoranza ma piano piano devo arrivarci, da premettere che gli unici logs che sono venuti fuori dopo che ho letto il tuo post è quando ho inseriro l'utente root davanti allo script di mysqldump, ho iniziato dopo che testavo le schedulazioni a ricevere dei post nella cartella /var/spool/mail/root e te lo riporto :

From root@server- Mon Jan 16 17:11:01 2012
Return-Path: <root@server-02.>
Received: from server-02. (localhost.localdomain [127.0.0.1])
   by server-02. (8.13.8/8.13.8) with ESMTP id q0GGB1D1012907
   for <root@server-02.>; Mon, 16 Jan 2012 17:11:01 +0100
Received: (from root@localhost)
   by server-02. (8.13.8/8.13.8/Submit) id q0GGB15m012904;
   Mon, 16 Jan 2012 17:11:01 +0100
Date: Mon, 16 Jan 2012 17:11:01 +0100
Message-Id: <201201161611.q0GGB15m012904@server-02>
From: root@server-02. (Cron Daemon)
To: root@server-02.
Subject: Cron <root@server-02> run-parts /etc/script_backup/backup_mysql
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env: <SHELL=/bin/bash>
X-Cron-Env: <PATH=/sbin:/bin:/usr/sbin:/usr/bin>
X-Cron-Env: <MAILTO=root>
X-Cron-Env: <HOME=/>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>

Not a directory: /etc/script_backup/backup_mysql
ad oggi  ho abbandonato l'inserimento dello script in contrab ed ho seguito il consiglio di creare un file con lo script facendolo richiamare dal contrab la sintassi che ho usato è la seguente :

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
29 17 * * *root  mysqldump -u xxxxx --opt -p xxxxxxx nomedatabase >
/mnt/backup/nomedatabase`date -I`.sql
15 17 * * * root /etc/script_backup/backup_mysql
chiaramente ho verificato che la cartella sia stata montata correttamente ( certo non riesco a farla montare in automatico ma piano piano ci arrivo).....

Offline LonelyWolf

  • Moderator
  • Hero Member
  • *****
  • Post: 1396
    • Mostra profilo
    • Traversate dei laghi
Re: Crontab Aiuto
« Risposta #9 il: 16 Gennaio 2012, 18:06:37 »
La cosa è più semplice di quanto sembra, anche perchè ormai hai già fatto tutto.

Lo script viene inteso come cartella non avendo messo estensione, di solito si usa .sh
/etc/script_backup/backup_mysql.sh

Quello che ci devi mettere è semplice:
mount della cartella condivisa
dump del db
umount della cartella

dagli il permesso di esecuzione (chmod +x /etc/script_backup/backup_mysql.sh ma leggiti man chmod )

Usa crontab -e per le schedulazioni (e rimetti a posto /etc/crontab levando quello che ci hai messo), metti il richiamo al tuo script.


Personalmente ritengo meglio fare il dump in una cartella temporanea locale, successivamente fare il mount e la copia del file in questo modo puoi aggiungere controlli alla procedura: che venga eseguito il dump, che il mount è riuscito, ecc (oltre ad avere cmq una copia del dump anche in locale)

Offline Silverino

  • Jr. Member
  • **
  • Post: 26
    • Mostra profilo
Re: Crontab Aiuto
« Risposta #10 il: 17 Gennaio 2012, 11:04:34 »
Grazie mille ho risolto,
era proprio questione di permessi, ora provo le varie schedulazioni e provo a fare qualche implementazioni un po' piu' complesse.
Speriamo bene.
« Ultima modifica: 17 Gennaio 2012, 14:02:34 da Silverino »

Offline morph3us

  • Jr. Member
  • **
  • Post: 26
    • Mostra profilo
    • E-mail
Re: Crontab Aiuto
« Risposta #11 il: 22 Febbraio 2012, 09:34:03 »
Ciao, mi intrometto anche io con lo stesso problema.

vediamo di essere chiari:

- creato uno script nel percorso /var/Script
- chmod -x script.sh

lancio lo script /var/Script/./script.sh  e tutto va alla perfezione
edito il file /etc/crontab oppure utilizzo crontab -e

schedulo l'operazione

15 13 * * * root /varScript/script.sh > /dev/null

e mi aspetto che alle 13.15 di ogni giorno il server mi esegua il mio script. nel log /var/log/cron:

crontab[11213]: (root) BEGIN EDIT (root)
crontab[11213]: (root) REPLACE (root)
crontab[11213]: (root) END EDIT (root)
crond[1684]: (root) RELOAD (/var/spool/cron/root)
crontab[11289]: (root) LIST (root)
CROND[11300]: (root) CMD (root /var/Script/script.sh > /dev/null)

ma ovviamente non ho risultati  :'(
questo lo script:

Codice: [Seleziona]
echo prova >fra.log
ll > fra1.log
mount 10.1.1.193:public /mnt/nas

non mi sembra nulla di cosi difficile, ma proprio nn riesco a farlo eseguire.....



Offline ciso39

  • Full Member
  • ***
  • Post: 79
    • Mostra profilo
Re: Crontab Aiuto
« Risposta #12 il: 28 Febbraio 2012, 01:03:36 »
Ciao morph3us
prova a mettere come prima riga:
#!/bin/bash
e riprova.
Modificare /etc/crontab è diverso da fare crontab -e,
poichè quest'ultimo comando usa un file su
/var/spool/cron/<nome utente>.

Auguri.