{"id":30,"date":"2013-10-06T00:25:10","date_gmt":"2013-10-05T23:25:10","guid":{"rendered":"http:\/\/louis.hatier.me\/blog\/?p=30"},"modified":"2018-02-28T10:49:51","modified_gmt":"2018-02-28T09:49:51","slug":"syntaxe-tache-cron-lisible","status":"publish","type":"post","link":"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/","title":{"rendered":"Cron : syntaxe de la fr\u00e9quence lisible"},"content":{"rendered":"<p><a title=\"\" href=\"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/pendule-tache-cron.jpg\" data-rel=\"lightbox-gallery-VgAnYkWL\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-31 alignleft\" title=\"T\u00e2che cron\" src=\"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/pendule-tache-cron.jpg\" alt=\"T\u00e2che cron\" width=\"142\" height=\"152\" \/><\/a>Sur les\u00a0syst\u00e8mes\u00a0<strong>Unix<\/strong> le programme cron permet de lancer des t\u00e2ches planifi\u00e9es. Ce qui rend possible d&rsquo;ex\u00e9cuter des scripts \u00e0 une date et heure pr\u00e9cise.<\/p>\n<p>Vous pouvez par exemple cr\u00e9er un fichier <em>dodo.php<\/em> avec une fonction mail qui vous envoie un email sur votre boite personnelle \u00e0 23h tous les jours pour vous pr\u00e9venir d&rsquo;aller vous coucher car \u00e7a fait tard et que si vous continuez \u00e0 jouer \u00e0 GTA V vous risquez de ne pas vous r\u00e9veiller \u00e0 l&rsquo;heure le lendemain matin.<\/p>\n<p>Pour que le programme comprenne \u00e7a il faut le lui indiquer avec une syntaxe particuli\u00e8re.<\/p>\n<p><!--more--><\/p>\n<pre><code class=\"no-highlight\">minute heure jourDuMois mois jourDeLaSemaine script &gt; log<\/code><\/pre>\n<p>&nbsp;<\/p>\n<h2>Syntaxe d&rsquo;une t\u00e2che cron<\/h2>\n<ul>\n<li>minute : la minute <em>(0 \u00e0 59)<\/em><\/li>\n<li>heure : l&rsquo;heure <em>(0 \u00e0 23)<\/em><\/li>\n<li>jourDuMois : le num\u00e9ro du jour dans le mois <em>(1 \u00e0 31)<\/em><\/li>\n<li>mois : num\u00e9ro du mois ou abr\u00e9viation <em>(1 \u00e0 12 ou jan, feb, mar etc.)<\/em><\/li>\n<li>jourDeLaSemaine : num\u00e9ro du jour de la semaine <em>(0 \u00e0 7 -0 et 7 \u00e9tant dimanche- ou mon, tue, wed etc.)<\/em><\/li>\n<li>script : lien vers un fichier \u00e0 ex\u00e9cuter par exemple <em>\/var\/www\/dodo.php<\/em><\/li>\n<li>log : un fichier de log que vous pourrez consulter par exemple <em>\/var\/www\/dodo.log<\/em><\/li>\n<\/ul>\n<p>Si vous voulez concat\u00e9ner les informations dans votre fichier de log il faut utiliser <code>&gt;&gt;<\/code> \u00e0 la place de <code>&gt;<\/code>.<br \/>\nPour rediriger la sortie standard plus les erreurs il faut ajouter <code>2&gt;&amp;1<\/code> en fin de ligne.<\/p>\n<p>Vous pouvez affiner votre timing avec <code>*<\/code>, <code>-<\/code>, <code>,<\/code>, et <code>\/<\/code>. Direction <a title=\"Wikipedia\" href=\"http:\/\/fr.wikipedia.org\/wiki\/Crontab#Notation\" target=\"_blank\" rel=\"noopener\">Wikipedia<\/a> pour plus de d\u00e9tails.<\/p>\n<p>Dans notre exemple on lui indiquerait donc :<\/p>\n<pre><code class=\"no-highlight\">0 23 * * 0-4 php -f \/var\/www\/dodo.php &gt;&gt; \/var\/www\/dodo.log 2&gt;&amp;1<\/code><\/pre>\n<p>&nbsp;<\/p>\n<h2>CronFrequency<\/h2>\n<p>Bref tout \u00e7a pour dire que la fr\u00e9quence est difficilement lisible\u00a0<code>0 23 * * 0-4<\/code> surtout pour une personne lambda.<\/p>\n<p>J&rsquo;ai donc cr\u00e9\u00e9 une <strong>classe PHP<\/strong> qui permet de transformer cette syntaxe en une phrase compr\u00e9hensible. Vous pouvez tester l&rsquo;outil via le lien ci-dessous :<\/p>\n<p><a title=\"Cron frequency\" href=\"http:\/\/louis.hatier.me\/cron-frequency\/\" target=\"_blank\" rel=\"noopener\">CronFrequency Tool<\/a><\/p>\n<p>La classe PHP est disponible sur <a title=\"GitHut CronFrequency\" href=\"https:\/\/github.com\/anaphel\/CronFrequency\" target=\"_blank\" rel=\"noopener\">GitHub<\/a>. Pour l&rsquo;utiliser c&rsquo;est tr\u00e8s simple, voici un exemple :<\/p>\n<pre><code class=\"php\">$cron = new CronFrequency('0 23 * * 0-4');\r\necho $cron-&gt;toHuman();<\/code><\/pre>\n<p>Pour une raison ou une autre si cette classe peut vous servir tant mieux !<\/p>\n<div style=\"padding-bottom:20px; padding-top:10px;\" class=\"hupso-share-buttons\"><!-- Hupso Share Buttons - https:\/\/www.hupso.com\/share\/ --><a class=\"hupso_counters\" href=\"https:\/\/www.hupso.com\/share\/\"><img decoding=\"async\" src=\"https:\/\/static.hupso.com\/share\/buttons\/dot.png\" style=\"border:0px; padding-top:2px; float:left;\" alt=\"Share Button\"\/><\/a><script type=\"text\/javascript\">var hupso_services_c=new Array(\"twitter\",\"facebook_like\",\"pinterest\",\"email\",\"linkedin\");var hupso_counters_lang = \"en_US\";var hupso_image_folder_url = \"\";var hupso_url_c=\"\";var hupso_title_c=\"Cron%20%3A%20syntaxe%20de%20la%20fr%C3%A9quence%20lisible\";<\/script><script type=\"text\/javascript\" src=\"https:\/\/static.hupso.com\/share\/js\/counters.js\"><\/script><!-- Hupso Share Buttons --><\/div>","protected":false},"excerpt":{"rendered":"<p>Sur les\u00a0syst\u00e8mes\u00a0Unix le programme cron permet de lancer des t\u00e2ches planifi\u00e9es. Ce qui rend possible d&rsquo;ex\u00e9cuter des scripts \u00e0 une date et heure pr\u00e9cise. Vous pouvez par exemple cr\u00e9er un fichier dodo.php avec une fonction mail qui vous envoie un email sur votre boite personnelle \u00e0 23h tous les jours pour vous pr\u00e9venir d&rsquo;aller vous [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,2],"tags":[30,62,57],"class_list":["post-30","post","type-post","status-publish","format-standard","hentry","category-linux","category-php","tag-git","tag-linux","tag-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cron : syntaxe de la fr\u00e9quence lisible - Melting Poutre<\/title>\n<meta name=\"description\" content=\"La fr\u00e9quence d&#039;une t\u00e2che cron est difficilement lisible, cet outil permet de transformer la syntaxe complexe en une phrase simple.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cron : syntaxe de la fr\u00e9quence lisible - Melting Poutre\" \/>\n<meta property=\"og:description\" content=\"La fr\u00e9quence d&#039;une t\u00e2che cron est difficilement lisible, cet outil permet de transformer la syntaxe complexe en une phrase simple.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/\" \/>\n<meta property=\"og:site_name\" content=\"Melting Poutre\" \/>\n<meta property=\"article:published_time\" content=\"2013-10-05T23:25:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-02-28T09:49:51+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/pendule-tache-cron.jpg\" \/>\n<meta name=\"author\" content=\"Louis Hatier\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Louis Hatier\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/\"},\"author\":{\"name\":\"Louis Hatier\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11\"},\"headline\":\"Cron : syntaxe de la fr\u00e9quence lisible\",\"datePublished\":\"2013-10-05T23:25:10+00:00\",\"dateModified\":\"2018-02-28T09:49:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/\"},\"wordCount\":319,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11\"},\"image\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/pendule-tache-cron.jpg\",\"keywords\":[\"Git\",\"Linux\",\"PHP\"],\"articleSection\":[\"Linux\",\"PHP\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/\",\"url\":\"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/\",\"name\":\"Cron : syntaxe de la fr\u00e9quence lisible - Melting Poutre\",\"isPartOf\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/pendule-tache-cron.jpg\",\"datePublished\":\"2013-10-05T23:25:10+00:00\",\"dateModified\":\"2018-02-28T09:49:51+00:00\",\"description\":\"La fr\u00e9quence d'une t\u00e2che cron est difficilement lisible, cet outil permet de transformer la syntaxe complexe en une phrase simple.\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/#primaryimage\",\"url\":\"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/pendule-tache-cron.jpg\",\"contentUrl\":\"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/pendule-tache-cron.jpg\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/#website\",\"url\":\"https:\/\/louis.hatier.me\/blog\/\",\"name\":\"Melting Poutre\",\"description\":\"Du web et d&#039;autres choses\",\"publisher\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/louis.hatier.me\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11\",\"name\":\"Louis Hatier\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cd8d107ede5a4ec340326655e74a00ca62b02e41a02442f961c36f085aa89942?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cd8d107ede5a4ec340326655e74a00ca62b02e41a02442f961c36f085aa89942?s=96&d=mm&r=g\",\"caption\":\"Louis Hatier\"},\"logo\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/louis.hatier.me\",\"https:\/\/www.linkedin.com\/in\/louishatier\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cron : syntaxe de la fr\u00e9quence lisible - Melting Poutre","description":"La fr\u00e9quence d'une t\u00e2che cron est difficilement lisible, cet outil permet de transformer la syntaxe complexe en une phrase simple.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/","og_locale":"fr_FR","og_type":"article","og_title":"Cron : syntaxe de la fr\u00e9quence lisible - Melting Poutre","og_description":"La fr\u00e9quence d'une t\u00e2che cron est difficilement lisible, cet outil permet de transformer la syntaxe complexe en une phrase simple.","og_url":"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/","og_site_name":"Melting Poutre","article_published_time":"2013-10-05T23:25:10+00:00","article_modified_time":"2018-02-28T09:49:51+00:00","og_image":[{"url":"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/pendule-tache-cron.jpg","type":"","width":"","height":""}],"author":"Louis Hatier","twitter_misc":{"\u00c9crit par":"Louis Hatier","Dur\u00e9e de lecture estim\u00e9e":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/#article","isPartOf":{"@id":"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/"},"author":{"name":"Louis Hatier","@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11"},"headline":"Cron : syntaxe de la fr\u00e9quence lisible","datePublished":"2013-10-05T23:25:10+00:00","dateModified":"2018-02-28T09:49:51+00:00","mainEntityOfPage":{"@id":"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/"},"wordCount":319,"commentCount":4,"publisher":{"@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11"},"image":{"@id":"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/#primaryimage"},"thumbnailUrl":"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/pendule-tache-cron.jpg","keywords":["Git","Linux","PHP"],"articleSection":["Linux","PHP"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/","url":"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/","name":"Cron : syntaxe de la fr\u00e9quence lisible - Melting Poutre","isPartOf":{"@id":"https:\/\/louis.hatier.me\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/#primaryimage"},"image":{"@id":"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/#primaryimage"},"thumbnailUrl":"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/pendule-tache-cron.jpg","datePublished":"2013-10-05T23:25:10+00:00","dateModified":"2018-02-28T09:49:51+00:00","description":"La fr\u00e9quence d'une t\u00e2che cron est difficilement lisible, cet outil permet de transformer la syntaxe complexe en une phrase simple.","inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/louis.hatier.me\/blog\/syntaxe-tache-cron-lisible\/#primaryimage","url":"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/pendule-tache-cron.jpg","contentUrl":"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/pendule-tache-cron.jpg"},{"@type":"WebSite","@id":"https:\/\/louis.hatier.me\/blog\/#website","url":"https:\/\/louis.hatier.me\/blog\/","name":"Melting Poutre","description":"Du web et d&#039;autres choses","publisher":{"@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/louis.hatier.me\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11","name":"Louis Hatier","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/cd8d107ede5a4ec340326655e74a00ca62b02e41a02442f961c36f085aa89942?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cd8d107ede5a4ec340326655e74a00ca62b02e41a02442f961c36f085aa89942?s=96&d=mm&r=g","caption":"Louis Hatier"},"logo":{"@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/louis.hatier.me","https:\/\/www.linkedin.com\/in\/louishatier\/"]}]}},"_links":{"self":[{"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/posts\/30","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/comments?post=30"}],"version-history":[{"count":32,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/posts\/30\/revisions"}],"predecessor-version":[{"id":621,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/posts\/30\/revisions\/621"}],"wp:attachment":[{"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/media?parent=30"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/categories?post=30"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/tags?post=30"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}