Entra

View Full Version : Cron, Crontab : qualcuno mi spiega come farlo funzionare?


STECCO
15-07-2013, 11:49
Le domanda è molto semplice. devo utilizzare crontab per lanciare degli script a cadenze regolari. vorrei capire come usare questo strumento perchè sul server dove devo utilizzarlo il file di configurazione etc/cron è di sola lettura...
di solito il ho sempre scritto crontab -e e da qualunque percorso mi si apriva un file editabile. su questo server invece no.
il sistema è centos

grazie tante a chi mi può aiutare. Mi interessa capire come farlo funzionare ed inviare mail.

Saluti.

antenore
15-07-2013, 12:34
su debian quando digiti crontab -e da root in realtà stai modificando il file
/var/spool/cron/crontabs/root
Prova a vedere se su centos è simile ;)

sacarde
15-07-2013, 12:51
in genere ogni utente (compreso root) ha la sua tabella crontab

vedi i task programmati con: crontab -l

editi/modifichi col comando: crontab -e



p.s.
http://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-autotasks.html

barzokk
15-07-2013, 13:04
@sacarde, dice che il -e non gli apre l'editor :D

beh io non ho mai usato crontab -e, io mi creo un file con "vi" o quello che ti pare, e poi lo carico con "crontab nomefile", e "crontab -l" per vederlo o salvarlo

STECCO
15-07-2013, 13:23
dunque il file /etc/crontab che apro con vi è di sola lettura e contiene

$ vi 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


è corretto?? ora io ricordo che aggiungevo righe ad un file col comando crontab -e solo che se lancio crontab -e mi crea un file vuoto...

STECCO
15-07-2013, 13:55
ok. ho salvato il file mettendo un comando crontab ed ora all'ora indicata mi trovo un file nella cartella /var/spool/mail
Lo ho scoperto perchè mi dice che ho una mail..
You have new mail in /var/spool/mail/user

ora che funziona ho bisogno di qualcosa che invii delle mail a degli indirizzi mail veri e propri..
come si fa? vedo che crontab invia mail all'utente.. posso inviare mail ad un elenco di indirizzi che ho su un file?

sacarde
15-07-2013, 15:24
prova

http://www.morganino.it/technology/inviare-mail-con-testo-ed-allegato-da-shell-linux/








altrenativa: usare ssmtp

config in: /etc/ssmtp/ssmtp.conf
root=myemailaddress@gmail.com
mailhub=smtp.gmail.com:587
AuthUser=mygmailusername
AuthPass=mypassword
UseSTARTTLS=YES
- - - - - - - - - - - - - -
invio
ssmtp myemailaddress@gmail.com < msg.txt

STECCO
17-07-2013, 14:01
prova

http://www.morganino.it/technology/inviare-mail-con-testo-ed-allegato-da-shell-linux/


altrenativa: usare ssmtp

config in: /etc/ssmtp/ssmtp.conf
root=myemailaddress@gmail.com
mailhub=smtp.gmail.com:587
AuthUser=mygmailusername
AuthPass=mypassword
UseSTARTTLS=YES
- - - - - - - - - - - - - -
invio
ssmtp myemailaddress@gmail.com < msg.txt

grazie, ho letto!

ho installato il pacchetto sharutils che mi sarà utile...

però credo che il problema sia mail
ho quindi seguito questo sito http://forum.slicehost.com/index.php?p=/discussion/2338/my-guide-configure-centos-and-php-mail-to-use-google-apps-smtp-server/p1
per l'installazione di msmtp ed ho installato msmtp.. solo che non va...

perchè quando provo ad inviare una mail di test ottengo il seguente errore..

[oracle@centos etc]$ echo -e "Subject: Test Mail\r\r\r\n This is a mail test" | msmtp --debug --from=default -t maildestinatario@alice.com]
loaded system configuration file /usr/local/etc/msmtprc
loaded user configuration file /home/oracle/.msmtprc
using account default from /home/oracle/.msmtprc
host = smtp.gmail.com
port = 587
timeout = off
protocol = smtp
domain = localhost
auth = LOGIN
user = [la mia mail@gmail.com]
password = *
ntlmdomain = (not set)
tls = on
tls_starttls = on
tls_trust_file = /etc/pki/tls/certs/ca-bundle.crt
tls_crl_file = (not set)
tls_fingerprint = (not set)
tls_key_file = (not set)
tls_cert_file = (not set)
tls_certcheck = on
tls_force_sslv3 = off
tls_min_dh_prime_bits = (not set)
tls_priorities = (not set)
auto_from = off
maildomain = (not set)
from = default
dsn_notify = (not set)
dsn_return = (not set)
keepbcc = off
logfile = /var/log/msmtp.log
syslog = (not set)
reading recipients from the command line and the mail
msmtp: cannot create socket: Address family not supported by protocol
msmtp: could not send mail (account default from /home/oracle/.msmtprc)



mentre quando invio una mail usando il modo classico mail -s "oggetto" destinatario@gmail.com
la mail mi viene notificata nel file /var/spool/mail/user

suggerimenti??

STECCO
17-07-2013, 14:49
altra cosa... il file .mailrc che dovrebbe stare sulla home dell'utente va creato a mano?
ho provato a seguirre queste altre guide...
http://quizzlo.wordpress.com/2010/04/28/email-da-shell-prima-parte/
http://quizzlo.wordpress.com/2010/05/04/email-da-shell-seconda-parte/

ancora niente... :(

sacarde
17-07-2013, 15:18
non ho mai usato msmtp


il comando "mail" in quale pacchetto e' ?



i link mi sembrano ben spiegati

STECCO
18-07-2013, 08:37
non ho mai usato msmtp

il comando "mail" in quale pacchetto e' ?


i link mi sembrano ben spiegati

Non lo so mail era già presente...

sacarde
18-07-2013, 09:05
si, crei sia:

~/.msmtprc

che

~/.mailrc



p.s.
su che distribuzione sei?

STECCO
18-07-2013, 11:16
si, crei sia:

~/.msmtprc

che

~/.mailrc


p.s.
su che distribuzione sei?


Centos

mi sta venendo il dubbio che sia un problema di porte.... come posso controllare?

sacarde
18-07-2013, 12:34
dici la :

smtp.gmail.com:587


a me funziona ssmtp



p.s.
non e' che msmtp funziona con "mail()" di php ?

STECCO
18-07-2013, 16:37
dici la :
smtp.gmail.com:587
a me funziona ssmtp

p.s.
non e' che msmtp funziona con "mail()" di php ?

da quello che ho capito msmtp e ssmtp sono la stessa cosa...

vorrei fare la verifica delle porte.. come faccio a sapere se quellaporta è aperta? fatto questo mi concentro sul problema se c'è ma secondo me è un problema di porta..ho provato le configurazioni per gmail e sono smtp.gmail.com:587 quindi... non sto sbagliando..

sacarde
18-07-2013, 16:57
mmm forse proprio uguali no, hanno 2 file di configurazione diversi (simili)



per la scansione delle porte aperte io uso:

nmap -A -T4 <ipdaesaminare>

STECCO
19-07-2013, 08:23
mmm forse proprio uguali no, hanno 2 file di configurazione diversi (simili)



per la scansione delle porte aperte io uso:

nmap -A -T4 <ipdaesaminare>

quel comando non mi funziona.. :(

sacarde
19-07-2013, 08:27
va installato il pacchetto: nmap