1 pièce(s) jointe(s)
Exécuter une commande sudo dans un script shell
Bonjour à tous et à toutes,
J'ai codé un script shell que j'ai nommé envoi_automatique_mail.sh que voici:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
#!/bin/bash
cd mails/default
for fich in `ls`
do
let nbre_fich=$nbre_fich+1
done
if [[ $nbre_fich -eq 0 ]]
then
echo "Plus de mail à envoyer"
exit
else
echo "Nbre de mail à envoyer: $nbre_fich"
cd /var/www/Penelope
while [[ $nbre_fich -gt 0 ]]
do
let nbre_fich=0
cd /var/www/Penelope
php app/console swiftmailer:spool:send --message-limit=1 --env=dev #commande Symfony 2 pour envoyer des mails depuis le spool
cd /home/lolo/Bureau/Automatic_Tasks/mails/default
for fich in `ls`
do
let nbre_fich=$nbre_fich+1
done
echo "Nbre de mail à envoyer: $nbre_fich"
sleep 20
done
echo "Plus de mail à envoyer"
fi |
Quand je l'exécute comme ceci:
Code:
1 2
|
./envoi_automatique_mail.sh |
Depuis mon terminal ça n'envoie pas mes mails. Par contre quand je fait ceci:
Code:
1 2
|
sudo ./envoi_automatique_mail.sh |
Les envois se passe correctement. Je me suis donc dis, vu que comme je doit faire ça via cron il faut que j'utilise mon utilisateur sudo pour que les envois soient bien fait. Voici la ligne cron que j'ai mise directement dans /etc/crontab:
Code:
1 2
|
0 * * * 1-6 lolo /home/lolo/Bureau/Automatic_Tasks/envoi_automatique_mail.sh >> /home/lolo/Bureau/Automatic_Tasks/log/log.txt |
Le script se lance bien toutes les heures. Mais la ligne d'envoi:
Code:
1 2
|
php app/console swiftmailer:spool:send --message-limit=1 --env=dev |
n'est pas exécutée et du coup ben ça provoque une boucle infinie puisqu'un mail est stocké sous forme d'un fichier. J'ai l'impression qu'il faut obliger le script à l'exécuter en tant que sudo sinon ça n'enverra jamais rien. Le hic c'est que je ne sais pas le faire. J'ai essayé de chercher sur le net avec plus ou moins de succés (cf les deux liens ci-dessous):
http://www.trustonme.net/didactels/214.html
http://ubuntu.5.x6.nabble.com/su-dan...-td605788.html
Mais j'avoue que je n'ai pas trop compris la soluce :aie:. Si quelqu'un pouvait m'expliquer comment faire et/ou me donner une solution plus compréhensible, merci d'avance pour vos réponses ;).
PS: pour ceux qui aimerai savoir à quoi ressemble l'envoi quand cela fonctionne, voici un screen shot.
Pièce jointe 143762