Newsgroup: it.comp.www.php
Titolo: Script PHP per creare Crono Jobs

Ciao a tutti,
Dovrei impostare un crono job sul mio server (per ora, in futuro magari di
più) ...
Il problema è che lavorare via shh/telnet o comunque direttamente sulla
shell mi diventa un casino. Una volta mi avevano spiegato come fare ma poi
in pratica quando sono dentro la macchina mi incasino...
Non si potrebbe creare uno script PHP che permette di creare un Crono Job ?
una specie di mini pannello di controllo per crono job...
Magari esiste già in giro... (?)
Cmq, alla fine quello che mi serve è far eseguire il dump MySQL ogni
mezzanotte...
in pratica il comando è del tipo /usr/bin/mysql-dump ecc....
Grazie
Alex

 in pratica il comando è del tipo /usr/bin/mysql-dump ecc....
vi /etc/crontab
aggiungi una riga:
0 0 * * *      root /usr/bin/mysqldump -uroot -ppasswd db > /root/db.sql
(per capire i parametri 0 0 * * *: "man 5 crontab")
per passwd e db metti i valori che ti servono
per testare veloce che funzioni:
1) date (ad esempio 12:38:02)
2) editare /etc/crontab ma con la data 39 12 * * * ecc..
3) aspettare un minuto
4) ls -l /root/db.sql
5) editare /etc/crontab ma con la data 0 0 * * * ecc..
Esempio piu' flessibile:
0 0 * * *      root   /root/backup.sh >/dev/null
in /root/backup.sh scrivi tutto quello che ti serve (e con chmod metti
eseguibile).
esempio, backup mysql con date (cosi ti crei uno storico)
#!/bin/bash
  data=`date +%Y%m%d`
  nomeFile="/root/backup_$data.sql"
  /usr/bin/mysqldump -uroot -ppassword database > $nomeFile
se crei una versione php binary puoi anche usare php:
0 0 * * *      root   /usr/sbin/php /root/backup.php >/dev/null
se vuoi passare parametri
/usr/sbin/php /root/backup.php password database
in $argv[1] trovi password
in $argv[2] trovi database

 ha scritto nel
messaggio news:q6sJ7.112379$sq5.5...@news.infostrada.it...

beh... non ti sembra complicato ? :-)
Per me si... purtroppo... :-/
Alex

 Per me si... purtroppo... :-/
riduciamo a:
edita /etc/crontab
aggiungi la riga:
0 0 * * *      root /usr/bin/mysqldump -uroot -ppasswd db > /root/db.sql
(se mi dici la password per il database mySQL ed il nome del database da
salvare ti posso anche scrivere una roba da copia incolla...)
:P
La prima volta e' complicato, anche la seconda. Ma poi...

 ha scritto nel
messaggio news:YGxJ7.115128$sq5.5...@news.infostrada.it...


 ha scritto nel messaggio
news:9t7vv6$94n$1...@serv1.albacom.net...


 scusate l'ignoranza
Crono credo derivi dal greco Kronos (tempo)
Jobs in inglese "lavori"
In Linux i crono jobs sono l'esecuzione automatica di una riga di comando, o
di uno script .sh che puo' essere paragonato ad un .bat sotto dos...
In Windows credo esista proprio "Esecuzione Automatica"....
ho detto giusto ? :-/
Alex


Si, per me sarebbe la prima volta :-)
Il fatto è che se mi dici edita /etc/crontab io cosa scrivo al posto di
"edita" :-)
Per essere sicuro, avrei bisogno della sintassi precisa, altrimenti rischio
di fare casini sul server :-)
se vuoi puoi postarmi la sintassi che devo fare partendo proprio dall'inizio
(accesso alla macchina con ssh) e al posto di user, password, ecc. ci scrivi
proprio "password" "nomedatabase", ecc. quelli posso cambiarli io :-)
(almeno questo :-)
Ciao
Alex

 ho detto giusto ? :-/
Quasi! ;-)
Intanto, a quanto mi risulta, si chiamano cron e non crono! :-)
Più che simili ad un .bat di win sono simili alle "opzioni pianificate"
(o un nome del genere).
In pratica, il sistema ti esegue ogni TOT tempo (che ovviamente
specifichi tu) una semplice linea di codice che, ovviamente, può
richiamare uno script presente sulla macchina.
Ma scusa, hai provato a chiedere via email all'amministratore di sistema
se ti può impostare lui un cron con una linea di codice che gli fornisci
tu? Male che vada, sprechi un'email! :-)
Ciao
--ev


Eh, il problema è proprio questo...
Un amministratore vero e proprio non c'è... siamo in 3 sul server... quello
che ha tutte le password (chiamalo amministratore) è in pratica = U.C.A.S.
(Ufficio Complicazioni Affari Semplici)
Per fargli caricare una 
libreria.pm
 (caricare non fare altro) ho dovuto
quasi litigarci...
Sarebbe già un miracolo se riesco a farmi dare la password per entrare via
ssh, ma non gli devo dire cosa vado a fare altrimenti se comincio a parlare
di contab, ecc. chissa cosa comincia a pensare...
Di sicuro la prima frase che pronuncerà sarà "E' un casino atroce..."
:-)
Alex

 Di sicuro la prima frase che pronuncerà sarà "E' un casino atroce..."
In questo caso si possono editare i crontab per l'utente (se hai almeno
accesso alla macchina via ssh o telnet, anche se non superuser. Il commando
da eseguire sarebbe crontab -e che edita il crontab per un utente.
Scrivere un panello per accedere direttamente a /etc/crontab non sara'
possibile (di solito diritti a 600, vuol dire root solo) perche' non sei il
superuser del sistema e dovresti imparare ad usare il crontab...

Boh, c'è chi dice crontab, chi crono table, chi crono jobs, ecc. (!?)
Il programma si chiama cron (8), e legge delle tabelle di cron chiamate
crontab (5). Queste possono essere modificate dal comando con lo stesso
nome, crontab (1).
/usr/sbin/cron, cioe' cron (8),  equivale ad Operazioni Pianificate.
Leonardo
-- 
And where the black and corkscrew towers climb
Lost and athirst the ragged pack abides,
Old as the aeons, trapped in tombs of time,
Sailing the tortuous temporal tides...