Cron sur Android 4.1
Par The WebMaster ! » 12 mai 2015 (14:18) - Android
cron sur Android. Envoi du résultat par mail
Matériel utilisé:
Samsung Galaxy GT-I9100G, Android 4.1.2 rooté
Prérequis:
Smartphone rooté.
Application SuperUser
Application
BusyBox
Accès au shell
terminal emulator
Confort d'utilisation:
- Installer un serveur ssh sur le téléphone, par exemple
SSH/SFTP Server for Android
- Utiliser les commandes busybox avant celles du système (ls en couleur par exemple):
Le shell utilisé par défaut est mksh, Il suffit de modifier le path dans son fichier de configuration:
mount -o rw,remount -t ext4 /system vi /system/etc/mkshrc
et mettre à la fin:
PATH=/system/xbin:$PATH
Méthode:
Ouvrir le Terminal emulator, faire un
su
(SuperSu doit vous donner l'accès)
Créer un fichier cron, et y inscrire le script à exécuter:
echo 15 * * * * bash /data/mon_script.sh > /data/cronjobs/root chmod 755 /data/cronjobs/root
Démarrer le service:
crond -b -L /data/log/crontab.log -c /data/cronjobs
L'inscrire au démarrage:
Par défaut, le /system est monté en readonly;
mount -o rw,remount -t ext4 /system echo crond -b -L /data/log/crontab.log -c /data/crontab > /system/etc/init.d/99startcron chmod 755 /system/etc/init.d/99startcron
Normalement, l'ajout de
MAILTO=[destinataire@un_domaine] CONTENT-TYPE="text/html"; charset=utf-8"
au début du fichier de cron permet d'envoyer la sortie à un mail destinataire. Hélas je n'ai pas réussi à configurer le sendmail de busybox pour que cet envoi réussisse, j'ai donc choisi de l'envoyer "moi-même"
Exemple de script /data/mon_script.sh:
#!/bin/bash echo 'FROM: Cron daemon' > /data/cron_mail_to_send.tmp echo Subject: Cron sur Android >> /data/cron_mail_to_send.tmp echo 'MIME-Version: 1.0' >> /data/cron_mail_to_send.tmp echo 'Content-Type: text/html' >> /data/cron_mail_to_send.tmp
[...] puis à la fin du script:
cat /data/cron_mail_to_send.tmp | sendmail -f [expediteur@mon_domaine] -S [ip_serveur_smtp]:[port] [destinataire@un_domaine]