115 votes

Comment créer une tâche cron qui s'exécute le premier jour du mois ?

Il y a des champs sur le panneau de contrôle de mon serveur comme ceci

Minute - Heure - Jour du mois - Mois - Jour de la semaine - Commande

Comment puis-je créer une tâche cron qui s'exécute le premier jour du mois avec ces champs ?

0 votes

Est-ce une question de PHP ou de cronjob unix ?

0 votes

Désolé pour le tag php !

0 votes

fatigué fatigué fatigué

184voto

Cela lancera la commande foo à 12h00 le premier de chaque mois.

0 0 1 * * /usr/bin/foo

Cet article décrit les différents champs, regardez en bas de la page : http://en.wikipedia.org/wiki/Cron

Pour ajouter ceci à votre fichier cron, il suffit d'utiliser la commande

crontab -e

3 votes

Ça semble correct, je suppose

1 votes

Puis-je taper * au lieu de 0 ?

19 votes

Si vous tapez * à la place du premier zéro, il s'exécutera toutes les minutes du premier jour du mois, si vous tapez * pour le second zéro, il s'exécutera toutes les heures du premier jour du mois. Si vous tapez * pour les deux, il s'exécutera toutes les minutes de toutes les heures de ce jour.

20voto

powtac Points 609

Exécutera /usr/bin/foo à 12:10 sur le premier jour du mois .

10 0 1 * * /usr/bin/foo

Exécutera /usr/bin/foo à 3:10am sur tous les jours .

10 3 * * * /usr/bin/foo

Voir http://www.scrounge.org/linux/cron.html


mis à jour les crons, c'était une erreur de copier-coller, merci Joy Dutta !

1 votes

3:10am chaque jour est 10 3 * * * /usr/bin/foo 12 h 10 le premier jour du mois est 10 * 1 * * /usr/bin/foo

1 votes

@Joy : Non, ce n'est pas le cas ; 10 * 1 * * correspond à l'heure 10, chaque heure, le premier jour du mois.

1 votes

D'après cette page Wikipedia, les troisième et cinquième champs sont traités comme des clauses OU de la condition d'exécution, et la syntaxe correcte devrait être la suivante 0 0 1 * ? mais mon cron Vixie sur Ubuntu 14 LTS les refuse.

15voto

alexus Points 12076

Utiliser ce qui suit :

@monthly     /home/user/backup.sh

plus d'informations :

2voto

Asaph Points 140

Vérifiez la présence d'un répertoire sur votre serveur à l'adresse /etc/cron.monthly . Si le répertoire existe, il y a de fortes chances que votre système soit configuré pour exécuter tous les exécutables qu'il trouve dans ce dossier sur une base mensuelle. Déposez simplement votre script (ou faites un lien symbolique) dans le répertoire /etc/cron.monthly . Assurez-vous également que votre script est exécutable.

0voto

drekka Points 303

Quelque chose comme :

0 0 1 * * command /directory/file.ext

0 votes

Qu'est-ce que c'est que cette 'commande' et le 1 est à la place du mois de l'année !

0 votes

Vous pouvez faire ce que vous voulez avec un cron, 99% de mon utilisation a été : {TIMESTAMPS} {CHEMIN_PHP} {CHEMIN_FICHIER}

1 votes

@Murali : Non, ça ne l'est pas.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X