J'ai entendu dire que crontab est un bon choix, mais comment écrire la ligne et où la placer sur le serveur?
144
Voici un bon tutoriel sur ce qu'est crontab et comment l'utiliser sur Ubuntu. Votre ligne crontab ressemblera à ceci:
00 00 * * * ruby path/to/your/script.rb
( 00 00
indique minuit - 0 minute et 0 heure - et le *
s signifie tous les jours de chaque mois.)
Syntaxe: commande mm hh dd mt wd mm minute 0-59 hh heure 0-23 jj jour du mois 1-31 mois mois 1-12 wd jour de la semaine 0-7 (dimanche = 0 ou 7) commande: ce que vous voulez exécuter toutes les valeurs numériques peuvent être remplacées par * ce qui signifie tout
/etc/crontab
(sur Ubuntu), mais lorsque vous exécutez,crontab -e
vous modifiez un crontab spécifique à l'utilisateur, ce qui n'autorise pas cette colonne. IIRC Ubuntu déconseille de quitter/etc/crontab
manuellement car il peut être écrasé. Voir ici: stackoverflow.com/questions/8475694/…sudo crotab -u root -e
depuis la page de manuel
Il est bon de noter les "surnoms" spéciaux qui peuvent être utilisés (documentés dans la page de manuel), en particulier "@reboot" qui n'a pas d'alternative à l'heure et à la date.
Vous pouvez également utiliser cette astuce pour exécuter votre tâche cron plusieurs fois par minute.
Pour ajouter une tâche cron, vous pouvez effectuer l'une des trois opérations suivantes:
ajoutez une commande à la crontab d'un utilisateur, comme indiqué ci-dessus (et à partir de la crontab, section 5, page de manuel).
crontab -e -u <username>
crontab -e
EDITOR
variable d'environnementenv EDITOR=nano crontab -e -u <username>
export EDITOR=vim
crontab -e
chmod a+x <file>
créer un script / programme en tant que tâche cron et l'ajouter aux
/etc/cron.*ly
répertoires anacron du systèmechmod a+x /etc/cron.daily/script_runs_daily.sh
- le rendre exécutableman anacron
chmod a+x <file>
/etc/crontab
ou/etc/anacrontab
pour s'exécuter à une heure définie/etc/anacrontab
et définissent cron.hourly dans/etc/cron.d/0hourly
Ou, on peut créer des crontables système dans
/etc/cron.d
./etc/cron.d
n'ont pas besoin d'être exécutables.someuser
, et l'utilisation de/bin/bash
comme shell est forcée.la source
Parfois, vous devrez spécifier PATH et GEM_PATH en utilisant crontab avec rvm.
Comme ça:
la source
Guide rapide pour configurer une tâche cron
Créez un nouveau fichier texte, exemple: mycronjobs.txt
Pour chaque tâche quotidienne (00:00, 03:45), enregistrez les échéances dans mycronjobs.txt
Envoyez les travaux à cron (chaque fois que vous exécutez ceci, cron supprime ce qui a été stocké et met à jour avec les nouvelles informations dans mycronjobs.txt )
Informations supplémentaires utiles
Voir les emplois cron actuels
Supprimer toutes les tâches cron
la source
Vous pouvez exécuter un script shell de deux manières, soit en utilisant le travail cron, soit en écrivant un script shell
Supposons que le nom de votre script soit "yourscript.sh"
Vérifiez d'abord l'autorisation utilisateur du script. utilisez la commande ci-dessous pour vérifier l'autorisation utilisateur du script
ll script.sh
Si le script est en racine, utilisez la commande ci-dessous
sudo crontab -e
Deuxièmement, si le script contient l'utilisateur "ubuntu", utilisez la commande ci-dessous
crontab -e
Ajoutez la ligne suivante dans votre crontab: -
55 23 * * * /chemin/vers/votrescript.sh
Une autre façon de faire est d'écrire un script et de l'exécuter dans le backgroud
Voici le script où vous devez mettre votre nom de script (par exemple: - youscript.sh) qui va s'exécuter à 23h55 tous les jours
#!/bin/bash while true do /home/modassir/yourscript.sh sleep 1d done
enregistrez-le dans un fichier (appelons-le "tous les jours.sh")
sleep 1d - signifie qu'il attend un jour, puis il s'exécute à nouveau.
donnez maintenant la permission à votre commande script.use ci-dessous: -
chmod + x tous les jours.sh
maintenant, exécutez ce script shell en arrière-plan en utilisant "nohup". Cela continuera à exécuter le script même après la déconnexion de votre session.
utilisez la commande ci-dessous pour exécuter le script.
nohup ./every-day.sh &
Remarque: - pour exécuter "yourscript.sh" à 23h55 tous les jours, vous devez exécuter le script "every-day.sh" à exactement 23h55.
la source
Mettez cette phrase dans un fichier crontab: 0 0 * * * / usr / local / bin / python /opt/ByAccount.py> /var/log/cron.log 2> & 1
la source