{"id":19687,"date":"2026-10-27T14:05:20","date_gmt":"2026-10-27T12:05:20","guid":{"rendered":"https:\/\/www.beseit.net\/?p=19687"},"modified":"2026-10-27T14:29:38","modified_gmt":"2026-10-27T12:29:38","slug":"programador-de-tasques-a-deepin","status":"publish","type":"post","link":"https:\/\/www.beseit.net\/?p=19687","title":{"rendered":"Programador de tasques a Deepin"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Definici\u00f3 de tasca<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En lloc d&#8217;haver d&#8217;executar manualment una ordre cada dia (com fer una c\u00f2pia de seguretat, netejar fitxers temporals o comprovar si un servidor com Calibre est\u00e0 actiu), li deleguem aquesta feina al sistema, un cop hem fet, definit i comprovat en un fitxert  .sh ,com calibre_watchdog.sh, que cada hora llan\u00e7a una ordre per activar calibre, assegurant el servei del servidor de calibre. <\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. Com funciona per sota? (El motor <code>cron<\/code>)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f20d0d\" class=\"has-inline-color\"> EDITOR=nano crontab -e<\/mark><\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"156\" src=\"https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/10\/imatge-23-1024x156.png\" alt=\"\" class=\"wp-image-19690\" srcset=\"https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/10\/imatge-23-1024x156.png 1024w, https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/10\/imatge-23-300x46.png 300w, https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/10\/imatge-23-768x117.png 768w, https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/10\/imatge-23-500x76.png 500w, https:\/\/www.beseit.net\/wp-content\/uploads\/2026\/10\/imatge-23.png 1116w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A Deepin (i a la majoria de distribucions Linux), el programador de tasques est\u00e0 gestionat per un dimoni (un proc\u00e9s en segon pla) anomenat <strong><code>cron<\/code><\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per dir-li a <code>cron<\/code> qu\u00e8 ha de fer, s&#8217;utilitzen uns fitxers de configuraci\u00f3 anomenats <strong><code>crontab<\/code><\/strong> (Contract Table). Cada usuari del sistema pot tenir el seu propi fitxer <code>crontab<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">El misteri de <code><mark style=\"background-color:rgba(0, 0, 0, 0);color:#e71313\" class=\"has-inline-color\">\/tmp\/crontab.122BlF\/crontab<\/mark><\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si mai has obert el teu fitxer de tasques i has vist una ruta com <code>\/tmp\/crontab.122BlF\/crontab<\/code>, no t&#8217;espantis.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>\/tmp\/<\/code><\/strong> \u00e9s la carpeta de fitxers temporals de Linux.<\/li>\n\n\n\n<li><strong><code>122BlF<\/code><\/strong> \u00e9s una cadena aleat\u00f2ria que el sistema genera en aquell moment.<\/li>\n\n\n\n<li><strong>Per qu\u00e8 passa aix\u00f2?<\/strong> Quan executes l&#8217;ordre per editar les tasques, el sistema <strong>no edita directament el fitxer real<\/strong> (per evitar que es corrompi si es talla la llum o tanques la terminal de cop). Crea una c\u00f2pia temporal a <code>\/tmp<\/code>, tu fas els canvis, i en guardar, el sistema substitueix el fitxer real (que est\u00e0 amagat a <code>\/var\/spool\/cron\/crontabs\/<\/code>) per la teva c\u00f2pia temporal.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Interpretaci\u00f3 de les l\u00ednies del <code>crontab<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cada l\u00ednia del fitxer <code>crontab<\/code> representa una tasca. La sintaxi es basa en <strong>5 camps de temps<\/strong> seguits de la comanda a executar:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">m    h    dom    mes    dow    comanda_a_executar<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Els 5 camps de temps:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong><code>m<\/code> (Minut):<\/strong> De 0 a 59.<\/li>\n\n\n\n<li><strong><code>h<\/code> (Hora):<\/strong> De 0 a 23 (format 24h).<\/li>\n\n\n\n<li><strong><code>dom<\/code> (Dia del mes):<\/strong> De l&#8217;1 al 31.<\/li>\n\n\n\n<li><strong><code>mes<\/code>:<\/strong> De l&#8217;1 al 12 (o abreujatures com <code>jan<\/code>, <code>feb<\/code>).<\/li>\n\n\n\n<li><strong><code>dow<\/code> (Dia de la setmana):<\/strong> De 0 a 7 (on 0 i 7 s\u00f3n diumenge, 1 \u00e9s dilluns&#8230;).<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Operadors per afinar la programaci\u00f3:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>*<\/code> (Asterisc):<\/strong> Vol dir \u00abqualsevol\u00bb o \u00abcada\u00bb.<\/li>\n\n\n\n<li><strong><code>,<\/code> (Coma):<\/strong> Per fer llistes (ex: <code>1,15<\/code> = el minut 1 i el 15).<\/li>\n\n\n\n<li><strong><code>-<\/code> (Gui\u00f3):<\/strong> Per fer rangs (ex: <code>1-5<\/code> = de dilluns a divendres).<\/li>\n\n\n\n<li><strong><code>\/<\/code> (Barra):<\/strong> Per fer intervals (ex: <code>*\/10<\/code> = cada 10 minuts).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Exemples pr\u00e0ctics:<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>L\u00ednia al crontab<\/th><th>Qu\u00e8 fa exactament?<\/th><\/tr><\/thead><tbody><tr><td><code>0 * * * * \/ruta\/script.sh<\/code><\/td><td>S&#8217;executa <strong>en punt de cada hora<\/strong> (10:00, 11:00&#8230;).<\/td><\/tr><tr><td><code>30 8 * * * \/ruta\/script.sh<\/code><\/td><td>S&#8217;executa <strong>cada dia a les 8:30<\/strong> del mat\u00ed.<\/td><\/tr><tr><td><code>0 0 1 * * \/ruta\/script.sh<\/code><\/td><td>S&#8217;executa <strong>el dia 1 de cada mes<\/strong> a mitjanit.<\/td><\/tr><tr><td><code>*\/15 * * * * \/ruta\/script.sh<\/code><\/td><td>S&#8217;executa <strong>cada 15 minuts<\/strong>.<\/td><\/tr><tr><td><code>0 9 * * 1-5 \/ruta\/script.sh<\/code><\/td><td>S&#8217;executa <strong>cada dia laborable (dilluns a divendres) a les 9:00<\/strong>.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Gesti\u00f3 des de la terminal<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tot i que Deepin t\u00e9 una interf\u00edcie gr\u00e0fica, la terminal \u00e9s la via m\u00e9s r\u00e0pida i fiable. Les ordres principals s\u00f3n:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>crontab -l<\/code><\/strong> (List): Llista les tasques programades de l&#8217;usuari actual.<\/li>\n\n\n\n<li><strong><code>crontab -e<\/code><\/strong> (Edit): Obre l&#8217;editor per afegir, modificar o esborrar tasques.<\/li>\n\n\n\n<li><strong><code>crontab -r<\/code><\/strong> (Remove): Esborra <strong>totes<\/strong> les tasques de l&#8217;usuari (compte amb aix\u00f2!).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Triar l&#8217;editor de text<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Per defecte, Deepin pot obrir l&#8217;editor <code>nano<\/code> (terminal) o <code>vi<\/code>. Si vols fer servir un editor gr\u00e0fic, has d&#8217;indicar-ho abans de l&#8217;ordre:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">EDITOR=mousepad crontab -e<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. La part gr\u00e0fica (GUI) a Deepin<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Deepin no inclou de s\u00e8rie una interf\u00edcie gr\u00e0fica nativa i completa per gestionar el <code>cron<\/code> d&#8217;usuari al seu Centre de Control (el Centre de Control nom\u00e9s gestiona aplicacions a l&#8217;inici de sessi\u00f3). Per tant, tens dues opcions gr\u00e0fiques:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Opci\u00f3 A: El m\u00e8tode \u00abH\u00edbrid\u00bb (Recomanat)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Utilitzes la terminal nom\u00e9s per cridar el teu editor de text gr\u00e0fic preferit de Deepin.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Assegura&#8217;t de tenir un editor gr\u00e0fic instal\u00b7lat (com <code>mousepad<\/code> o <code>xed<\/code>).<\/li>\n\n\n\n<li>Obre la terminal i escriu:<code>EDITOR=mousepad crontab -e<\/code><\/li>\n\n\n\n<li>S&#8217;obrir\u00e0 una finestra gr\u00e0fica amb el fitxer. Pots editar les l\u00ednies amb el ratol\u00ed, guardar (<code>Ctrl+S<\/code>) i tancar.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Opci\u00f3 B: Programari gr\u00e0fic pur (Gnome Schedule)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si prefereixes un programa amb botons, men\u00fas desplegables i finestres dedicades, pots instal\u00b7lar <strong>Gnome Schedule<\/strong>. Tot i ser un programa antic, funciona perfectament en Deepin.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Instal\u00b7laci\u00f3:<\/strong> Obre la terminal i escriu:<code>sudo apt update sudo apt install gnome-schedule<\/code><\/li>\n\n\n\n<li><strong>\u00das:<\/strong> Tanca la terminal, obre el llan\u00e7ador d&#8217;aplicacions de Deepin i busca <strong>\u00abProgramador de tasques\u00bb<\/strong>.<\/li>\n\n\n\n<li><strong>Configuraci\u00f3:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Fes clic a <strong>\u00abAfegeix\u00bb<\/strong> (Add).<\/li>\n\n\n\n<li>Tria <strong>\u00abUna tasca que es llan\u00e7a regularment\u00bb<\/strong>.<\/li>\n\n\n\n<li>A la pestanya <strong>B\u00e0sic<\/strong>, escriu la comanda (ex: <code>\/home\/Miquel\/calibre_watchdog.sh<\/code>).<\/li>\n\n\n\n<li>A la pestanya <strong>Avan\u00e7at<\/strong>, pots configurar els minuts, hores i dies fent clic a les caselles, sense haver de memoritzar la sintaxi dels asteriscs.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Consells d&#8217;or per al programador de tasques<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Usa rutes absolutes:<\/strong> Al <code>crontab<\/code>, el sistema no sempre sap on ets. En lloc de posar <code>.\/script.sh<\/code>, posa sempre <code>\/home\/Miquel\/script.sh<\/code>.<\/li>\n\n\n\n<li><strong>Redirigeix la sortida (<code>&gt;&gt;<\/code>):<\/strong> Com que les tasques s&#8217;executen en segon pla, no veur\u00e0s els errors. Afegeix sempre <code>&gt;&gt; \/ruta\/al\/registre.log 2&gt;&amp;1<\/code> al final de la comanda per tenir un historial.<\/li>\n\n\n\n<li><strong>Comprova el dimoni:<\/strong> Si les tasques no s&#8217;executen, comprova que el servei <code>cron<\/code> estigui actiu amb: <code><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f22121\" class=\"has-inline-color\">sudo systemctl status cron<\/mark><\/code>.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Definici\u00f3 de tasca En lloc d&#8217;haver d&#8217;executar manualment una ordre cada dia (com fer una c\u00f2pia de seguretat, netejar fitxers temporals o comprovar si un servidor com Calibre est\u00e0 actiu), li deleguem aquesta feina al sistema, un cop hem fet, &hellip; <a href=\"https:\/\/www.beseit.net\/?p=19687\">Continua llegint <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":3167,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[207,1],"tags":[],"class_list":["post-19687","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deepin-linux","category-bloc-de-notes"],"_links":{"self":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/19687","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=19687"}],"version-history":[{"count":4,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/19687\/revisions"}],"predecessor-version":[{"id":19695,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/19687\/revisions\/19695"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/media\/3167"}],"wp:attachment":[{"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=19687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=19687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=19687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}