[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/crontab-basics":3,"mdc--mbft2l-key":490,"mdc--z4jz8-key":509,"mdc-bve88y-key":534,"mdc-f2oqpi-key":564,"mdc-5j1nzs-key":580,"mdc--oldx58-key":603,"mdc-qctpkv-key":619,"mdc--g91d4r-key":636,"mdc--gh3hhs-key":652,"mdc-jepe5l-key":675,"related-/guides/linux/cron-jobs,/guides/linux/systemd-timers,/guides/linux/automation":707},{"id":4,"title":5,"appliesTo":6,"author":12,"body":13,"canonical":420,"code":420,"createdAt":421,"description":422,"difficulty":423,"draft":424,"estimatedTime":425,"extension":426,"faq":427,"howToSteps":440,"howToTotalTime":459,"image":420,"keywords":460,"locale":471,"meta":472,"navigation":473,"path":474,"platform":475,"related":476,"section":480,"seo":481,"severity":420,"stem":482,"summary":483,"tags":484,"twitterCreator":420,"twitterSite":420,"type":488,"updatedAt":421,"__hash__":489},"content_ru/guides/linux/crontab-basics.md","Пошаговое руководство по настройке crontab в Linux",[7,8,9,10,11],"Ubuntu 20.04","Ubuntu 22.04","Debian 11","CentOS 8","Fedora 36","FixPedia Team",{"type":14,"value":15,"toc":405},"minimark",[16,21,25,29,58,62,67,70,97,100,128,132,135,149,155,159,162,170,177,180,184,187,199,203,210,226,229,243,247,250,276,279,295,298,310,317,321,342,346,395,398,401],[17,18,20],"h2",{"id":19},"введение-зачем-это-нужно","Введение / Зачем это нужно",[22,23,24],"p",{},"Cron — это встроенный в Linux планировщик задач, который позволяет автоматически запускать скрипты, команды или другие действия по заданному расписанию. Настройка crontab дает вам возможность автоматизировать рутинные операции, такие как резервное копирование, очистка логов или отправка уведомлений, освобождая время для важных задач.",[17,26,28],{"id":27},"требования-подготовка","Требования / Подготовка",[30,31,32,36,44,55],"ul",{},[33,34,35],"li",{},"Любая современная дистрибутива Linux (Ubuntu, Debian, CentOS, Fedora и т.д.).",[33,37,38,39,43],{},"Права администратора (",[40,41,42],"code",{},"sudo","), если требуется установка или управление сервисом.",[33,45,46,47,50,51,54],{},"Текстовый редактор, совместимый с терминалом (",[40,48,49],{},"nano",", ",[40,52,53],{},"vim"," и т.д.).",[33,56,57],{},"Доступ к командной строке.",[17,59,61],{"id":60},"пошаговая-инструкция","Пошаговая инструкция",[63,64,66],"h3",{"id":65},"шаг-1-установите-и-проверьте-cron-сервис","Шаг 1: Установите и проверьте cron-сервис",[22,68,69],{},"На большинстве дистрибутивов cron уже установлен. Проверьте статус:",[71,72,77],"pre",{"className":73,"code":74,"language":75,"meta":76,"style":76},"language-bash shiki shiki-themes github-light github-dark","sudo systemctl status cron\n","bash","",[40,78,79],{"__ignoreMap":76},[80,81,84,87,91,94],"span",{"class":82,"line":83},"line",1,[80,85,42],{"class":86},"sScJk",[80,88,90],{"class":89},"sZZnC"," systemctl",[80,92,93],{"class":89}," status",[80,95,96],{"class":89}," cron\n",[22,98,99],{},"Если сервис неактивен, запустите его и включите на автозагрузку:",[71,101,103],{"className":73,"code":102,"language":75,"meta":76,"style":76},"sudo systemctl start cron\nsudo systemctl enable cron\n",[40,104,105,116],{"__ignoreMap":76},[80,106,107,109,111,114],{"class":82,"line":83},[80,108,42],{"class":86},[80,110,90],{"class":89},[80,112,113],{"class":89}," start",[80,115,96],{"class":89},[80,117,119,121,123,126],{"class":82,"line":118},2,[80,120,42],{"class":86},[80,122,90],{"class":89},[80,124,125],{"class":89}," enable",[80,127,96],{"class":89},[63,129,131],{"id":130},"шаг-2-откройте-личный-crontab-для-редактирования","Шаг 2: Откройте личный crontab для редактирования",[22,133,134],{},"Выполните команду:",[71,136,138],{"className":73,"code":137,"language":75,"meta":76,"style":76},"crontab -e\n",[40,139,140],{"__ignoreMap":76},[80,141,142,145],{"class":82,"line":83},[80,143,144],{"class":86},"crontab",[80,146,148],{"class":147},"sj4cs"," -e\n",[22,150,151,152,154],{},"Система вызовет текстовый редактор (обычно ",[40,153,49],{},"). Добавьте или отредактируйте расписание.",[63,156,158],{"id":157},"шаг-3-добавьте-пример-задания","Шаг 3: Добавьте пример задания",[22,160,161],{},"Вставьте строку, например:",[71,163,168],{"className":164,"code":166,"language":167},[165],"language-text","0 2 * * * /usr/local/bin/backup.sh\n","text",[40,169,166],{"__ignoreMap":76},[22,171,172,173,176],{},"Это задание будет запускать скрипт ",[40,174,175],{},"/usr/local/bin/backup.sh"," каждый день в 02:00 ночи.",[178,179],"in-article-ad",{},[63,181,183],{"id":182},"шаг-4-проверьте-синтаксис-заданий","Шаг 4: Проверьте синтаксис заданий",[22,185,186],{},"Чтобы убедиться, что crontab синтаксически корректен, выведите список заданий:",[71,188,190],{"className":73,"code":189,"language":75,"meta":76,"style":76},"crontab -l\n",[40,191,192],{"__ignoreMap":76},[80,193,194,196],{"class":82,"line":83},[80,195,144],{"class":86},[80,197,198],{"class":147}," -l\n",[63,200,202],{"id":201},"шаг-5-запустите-cron-сервис-если-он-не-работает","Шаг 5: Запустите cron-сервис (если он не работает)",[22,204,205,206,209],{},"Если ",[40,207,208],{},"systemctl"," не показывает работающего cron, перезапустите сервис:",[71,211,213],{"className":73,"code":212,"language":75,"meta":76,"style":76},"sudo systemctl restart cron\n",[40,214,215],{"__ignoreMap":76},[80,216,217,219,221,224],{"class":82,"line":83},[80,218,42],{"class":86},[80,220,90],{"class":89},[80,222,223],{"class":89}," restart",[80,225,96],{"class":89},[22,227,228],{},"Проверьте статус снова:",[71,230,231],{"className":73,"code":74,"language":75,"meta":76,"style":76},[40,232,233],{"__ignoreMap":76},[80,234,235,237,239,241],{"class":82,"line":83},[80,236,42],{"class":86},[80,238,90],{"class":89},[80,240,93],{"class":89},[80,242,96],{"class":89},[63,244,246],{"id":245},"шаг-6-проверьте-выполнение-задания","Шаг 6: Проверьте выполнение задания",[22,248,249],{},"Создайте тестовый скрипт:",[71,251,253],{"className":73,"code":252,"language":75,"meta":76,"style":76},"#!/bin/bash\necho DONE > /tmp/cron_test.txt\n",[40,254,255,261],{"__ignoreMap":76},[80,256,257],{"class":82,"line":83},[80,258,260],{"class":259},"sJ8bj","#!/bin/bash\n",[80,262,263,266,269,273],{"class":82,"line":118},[80,264,265],{"class":147},"echo",[80,267,268],{"class":89}," DONE",[80,270,272],{"class":271},"szBVR"," >",[80,274,275],{"class":89}," /tmp/cron_test.txt\n",[22,277,278],{},"Сделайте его исполняемым:",[71,280,282],{"className":73,"code":281,"language":75,"meta":76,"style":76},"chmod +x /tmp/test.sh\n",[40,283,284],{"__ignoreMap":76},[80,285,286,289,292],{"class":82,"line":83},[80,287,288],{"class":86},"chmod",[80,290,291],{"class":89}," +x",[80,293,294],{"class":89}," /tmp/test.sh\n",[22,296,297],{},"Дождитесь первой активации (для задания в 02:00 ночи). После этого проверьте содержимое файла:",[71,299,301],{"className":73,"code":300,"language":75,"meta":76,"style":76},"cat /tmp/cron_test.txt\n",[40,302,303],{"__ignoreMap":76},[80,304,305,308],{"class":82,"line":83},[80,306,307],{"class":86},"cat",[80,309,275],{"class":89},[22,311,312,313,316],{},"Если вы видите ",[40,314,315],{},"DONE",", задание работает корректно.",[17,318,320],{"id":319},"проверка-результата","Проверка результата",[30,322,323,330,336],{},[33,324,325,326,329],{},"Используйте ",[40,327,328],{},"systemctl status cron",", чтобы убедиться, что планировщик работает.",[33,331,325,332,335],{},[40,333,334],{},"crontab -l",", чтобы проверить активные задания.",[33,337,338,339,341],{},"Запустите скрипт вручную (",[40,340,175],{},") и проверьте его вывод.",[17,343,345],{"id":344},"возможные-проблемы","Возможные проблемы",[30,347,348,363,372,381],{},[33,349,350,354,355,358,359,362],{},[351,352,353],"strong",{},"Сервис cron не запущен"," – выполните ",[40,356,357],{},"sudo systemctl start cron"," и убедитесь, что он включен (",[40,360,361],{},"sudo systemctl enable cron",").",[33,364,365,368,369,362],{},[351,366,367],{},"Ошибка прав доступа"," – убедитесь, что скрипт имеет права на выполнение (",[40,370,371],{},"chmod +x /path/to/script",[33,373,374,377,378,380],{},[351,375,376],{},"Задание не выполняется"," – проверьте синтаксис с помощью ",[40,379,334],{},"; также убедитесь, что путь к скрипту абсолютный или указан относительно домашнего каталога.",[33,382,383,386,387,390,391,394],{},[351,384,385],{},"Часовой пояс не тот"," – cron использует системный часовой пояс. Измените его в ",[40,388,389],{},"/etc/timezone"," или используйте ",[40,392,393],{},"%Z"," в задании, если нужно локальное время.",[396,397],"hr",{},[22,399,400],{},"Наличие корректно настроенного crontab значительно упрощает рутинную работу в Linux. Следуя приведенным шагам, вы сможете создавать, редактировать и проверять cron-задания уже через несколько минут. Не бойтесь экспериментировать с синтаксисом и расписанием – именно так вы откроете весь потенциал автоматизации в вашей системе.",[402,403,404],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":76,"searchDepth":118,"depth":118,"links":406},[407,408,409,418,419],{"id":19,"depth":118,"text":20},{"id":27,"depth":118,"text":28},{"id":60,"depth":118,"text":61,"children":410},[411,413,414,415,416,417],{"id":65,"depth":412,"text":66},3,{"id":130,"depth":412,"text":131},{"id":157,"depth":412,"text":158},{"id":182,"depth":412,"text":183},{"id":201,"depth":412,"text":202},{"id":245,"depth":412,"text":246},{"id":319,"depth":118,"text":320},{"id":344,"depth":118,"text":345},null,"2026-07-02 14:11:05","Узнайте, как настроить cron-задания в Linux за 10 минут. Пошаговая инструкция с примерами для Ubuntu, CentOS и Debian.","easy",false,"5-10 мин","md",[428,431,434,437],{"question":429,"answer":430},"Как открыть редактор crontab для редактирования?","Выполните команду `crontab -e`, чтобы вызвать стандартный текстовый редактор (например, nano или vi) и отредактировать личное расписание.",{"question":432,"answer":433},"Как записать задание, которое должно выполняться каждую минуту?","Добавьте строку `*/1 * * * * команда` в crontab, например `*/1 * * * * /home/user/script.sh`.",{"question":435,"answer":436},"Что делать, если cron не запускает мои задания?","Убедитесь, что сервис запущен (`sudo systemctl status cron`), cron включен (`sudo systemctl enable cron`) и права на скрипт установлены (`chmod +x /path/to/script`).",{"question":438,"answer":439},"Как удалить или отключить задачу в crontab?","Откройте crontab (`crontab -e`) и удалите нужную строку. Сохраните изменения, и задание перестанет выполняться.",[441,444,447,450,453,456],{"name":442,"text":443},"Установите и проверьте cron-сервис","На большинстве дистрибутивов cron уже установлен. Проверьте статус: `sudo systemctl status cron`. Если сервис неактивен, запустите его: `sudo systemctl start cron && sudo systemctl enable cron`.",{"name":445,"text":446},"Откройте личный crontab для редактирования","Выполните `crontab -e`. Система запросит текстовый редактор (nano, vim). Добавьте или отредактируйте расписание.",{"name":448,"text":449},"Добавьте пример задания","Вставьте строку, например `0 2 * * * /usr/local/bin/backup.sh`. Это задание будет запускать скрипт каждый день в 2:00 ночи.",{"name":451,"text":452},"Проверьте синтаксис заданий","Запустите `crontab -l`, чтобы вывести список заданий и убедиться в правильности записи.",{"name":454,"text":455},"Запустите cron-сервис (если он не работает)","Если `systemctl` не показывает работающего cron, запустите его: `sudo systemctl restart cron`. Проверьте статус ещё раз.",{"name":457,"text":458},"Проверьте выполнение задания","Создайте простой тестовый скрипт, например `#!/bin/bash echo DONE > /tmp/cron_test.txt`, установите для него права на выполнение (`chmod +x /tmp/test.sh`) и дождитесь первой активации. Проверьте файл: `cat /tmp/cron_test.txt`.","PT10M",[461,462,463,464,465,466,467,468,469,470],"crontab в Linux","настройка cron-заданий","редактировать crontab","планировщик задач Linux","команда crontab","cron daemon","задания cron","crontab syntax","как настроить cron","добавить задачу в crontab","ru_RU",{},true,"/guides/linux/crontab-basics","linux",[477,478,479],"/guides/linux/cron-jobs","/guides/linux/systemd-timers","/guides/linux/automation","Гайды Linux",{"title":5,"description":422},"guides/linux/crontab-basics","В этом гайде вы научитесь создавать, редактировать и планировать задачи с помощью crontab в Linux. После выполнения инструкции вы сможете автоматизировать повторяющиеся задачи.",[475,144,485,486,487],"планировщик","Ubuntu","CentOS","guide","-o5q20n49aohU3HCr2_TQmzmexIbNcm0p3OpqWTMFFM",{"data":491,"body":492},{},{"type":493,"children":494},"root",[495],{"type":496,"tag":22,"props":497,"children":498},"element",{},[499,501,507],{"type":167,"value":500},"Выполните команду ",{"type":496,"tag":40,"props":502,"children":504},{"className":503},[],[505],{"type":167,"value":506},"crontab -e",{"type":167,"value":508},", чтобы вызвать стандартный текстовый редактор (например, nano или vi) и отредактировать личное расписание.",{"data":510,"body":511},{},{"type":493,"children":512},[513],{"type":496,"tag":22,"props":514,"children":515},{},[516,518,524,526,532],{"type":167,"value":517},"Добавьте строку ",{"type":496,"tag":40,"props":519,"children":521},{"className":520},[],[522],{"type":167,"value":523},"*/1 * * * * команда",{"type":167,"value":525}," в crontab, например ",{"type":496,"tag":40,"props":527,"children":529},{"className":528},[],[530],{"type":167,"value":531},"*/1 * * * * /home/user/script.sh",{"type":167,"value":533},".",{"data":535,"body":536},{},{"type":493,"children":537},[538],{"type":496,"tag":22,"props":539,"children":540},{},[541,543,549,551,556,558,563],{"type":167,"value":542},"Убедитесь, что сервис запущен (",{"type":496,"tag":40,"props":544,"children":546},{"className":545},[],[547],{"type":167,"value":548},"sudo systemctl status cron",{"type":167,"value":550},"), cron включен (",{"type":496,"tag":40,"props":552,"children":554},{"className":553},[],[555],{"type":167,"value":361},{"type":167,"value":557},") и права на скрипт установлены (",{"type":496,"tag":40,"props":559,"children":561},{"className":560},[],[562],{"type":167,"value":371},{"type":167,"value":362},{"data":565,"body":566},{},{"type":493,"children":567},[568],{"type":496,"tag":22,"props":569,"children":570},{},[571,573,578],{"type":167,"value":572},"Откройте crontab (",{"type":496,"tag":40,"props":574,"children":576},{"className":575},[],[577],{"type":167,"value":506},{"type":167,"value":579},") и удалите нужную строку. Сохраните изменения, и задание перестанет выполняться.",{"data":581,"body":582},{},{"type":493,"children":583},[584],{"type":496,"tag":22,"props":585,"children":586},{},[587,589,594,596,602],{"type":167,"value":588},"На большинстве дистрибутивов cron уже установлен. Проверьте статус: ",{"type":496,"tag":40,"props":590,"children":592},{"className":591},[],[593],{"type":167,"value":548},{"type":167,"value":595},". Если сервис неактивен, запустите его: ",{"type":496,"tag":40,"props":597,"children":599},{"className":598},[],[600],{"type":167,"value":601},"sudo systemctl start cron && sudo systemctl enable cron",{"type":167,"value":533},{"data":604,"body":605},{},{"type":493,"children":606},[607],{"type":496,"tag":22,"props":608,"children":609},{},[610,612,617],{"type":167,"value":611},"Выполните ",{"type":496,"tag":40,"props":613,"children":615},{"className":614},[],[616],{"type":167,"value":506},{"type":167,"value":618},". Система запросит текстовый редактор (nano, vim). Добавьте или отредактируйте расписание.",{"data":620,"body":621},{},{"type":493,"children":622},[623],{"type":496,"tag":22,"props":624,"children":625},{},[626,628,634],{"type":167,"value":627},"Вставьте строку, например ",{"type":496,"tag":40,"props":629,"children":631},{"className":630},[],[632],{"type":167,"value":633},"0 2 * * * /usr/local/bin/backup.sh",{"type":167,"value":635},". Это задание будет запускать скрипт каждый день в 2:00 ночи.",{"data":637,"body":638},{},{"type":493,"children":639},[640],{"type":496,"tag":22,"props":641,"children":642},{},[643,645,650],{"type":167,"value":644},"Запустите ",{"type":496,"tag":40,"props":646,"children":648},{"className":647},[],[649],{"type":167,"value":334},{"type":167,"value":651},", чтобы вывести список заданий и убедиться в правильности записи.",{"data":653,"body":654},{},{"type":493,"children":655},[656],{"type":496,"tag":22,"props":657,"children":658},{},[659,660,665,667,673],{"type":167,"value":205},{"type":496,"tag":40,"props":661,"children":663},{"className":662},[],[664],{"type":167,"value":208},{"type":167,"value":666}," не показывает работающего cron, запустите его: ",{"type":496,"tag":40,"props":668,"children":670},{"className":669},[],[671],{"type":167,"value":672},"sudo systemctl restart cron",{"type":167,"value":674},". Проверьте статус ещё раз.",{"data":676,"body":677},{},{"type":493,"children":678},[679],{"type":496,"tag":22,"props":680,"children":681},{},[682,684,690,692,698,700,706],{"type":167,"value":683},"Создайте простой тестовый скрипт, например ",{"type":496,"tag":40,"props":685,"children":687},{"className":686},[],[688],{"type":167,"value":689},"#!/bin/bash echo DONE > /tmp/cron_test.txt",{"type":167,"value":691},", установите для него права на выполнение (",{"type":496,"tag":40,"props":693,"children":695},{"className":694},[],[696],{"type":167,"value":697},"chmod +x /tmp/test.sh",{"type":167,"value":699},") и дождитесь первой активации. Проверьте файл: ",{"type":496,"tag":40,"props":701,"children":703},{"className":702},[],[704],{"type":167,"value":705},"cat /tmp/cron_test.txt",{"type":167,"value":533},[708],{"id":709,"title":710,"appliesTo":711,"author":12,"body":713,"canonical":420,"code":420,"createdAt":1638,"description":1639,"difficulty":1640,"draft":424,"estimatedTime":1641,"extension":426,"faq":1642,"howToSteps":1652,"howToTotalTime":1671,"image":420,"keywords":1672,"locale":471,"meta":1681,"navigation":473,"path":478,"platform":475,"related":1682,"section":480,"seo":1686,"severity":420,"stem":1687,"summary":1688,"tags":1689,"twitterCreator":420,"twitterSite":420,"type":488,"updatedAt":1638,"__hash__":1694},"content_ru/guides/linux/systemd-timers.md","Systemd-таймеры: гибкая замена cron для автоматизации в Linux",[712],"systemd 235+ (все современные дистрибутивы: Ubuntu 18.04+, Debian 9+, CentOS 7+, Fedora 25+)",{"type":14,"value":714,"toc":1613},[715,717,731,734,736,786,790,801,808,901,906,953,957,963,1029,1033,1082,1086,1089,1103,1106,1110,1113,1172,1179,1181,1185,1189,1192,1204,1207,1211,1216,1272,1276,1298,1302,1306,1312,1330,1340,1344,1350,1368,1375,1379,1385,1404,1407,1409,1463,1466,1468,1472,1509,1513,1548,1555,1610],[17,716,20],{"id":19},[22,718,719,722,723,726,727,730],{},[351,720,721],{},"Systemd-таймеры"," — это современный механизм планирования задач в системах, использующих systemd (практически все актуальные дистрибутивы Linux). Он пришел на смену классическому ",[40,724,725],{},"cron",", предлагая более тесную интеграцию с системой инициализации, расширенные возможности расписания и единый журнал событий (",[40,728,729],{},"journalctl","). С помощью таймеров вы можете автоматизировать резервное копирование, очистку логов, проверку обновлений или запуск любых скриптов по расписанию, с задержкой после загрузки или даже в зависимости от других событий системы.",[22,732,733],{},"После прохождения этого гайда вы сможете создавать надежные и легко управляемые задания, которые будут корректно обрабатывать пропущенные запуски (например, если компьютер был выключен) и предоставлять детальную информацию о своих работах.",[17,735,28],{"id":27},[737,738,739,752,765,773],"ol",{},[33,740,741,744,745,748,749,362],{},[351,742,743],{},"Система с systemd:"," Убедитесь, что в вашем дистрибутиве используется systemd (проверьте ",[40,746,747],{},"echo $INIT_SYSTEM"," или ",[40,750,751],{},"ps -p 1 -o comm=",[33,753,754,757,758,761,762,533],{},[351,755,756],{},"Права суперпользователя (root):"," Для создания системных юнитов в ",[40,759,760],{},"/etc/systemd/system/"," и их управления требуются права администратора. Для пользовательских таймеров (без sudo) используйте ",[40,763,764],{},"~/.config/systemd/user/",[33,766,767,770,771,533],{},[351,768,769],{},"Базовое понимание systemd:"," Желательно знать, что такое unit-файлы и команда ",[40,772,208],{},[33,774,775,778,779,50,781,748,783,533],{},[351,776,777],{},"Текстовый редактор:"," Например, ",[40,780,49],{},[40,782,53],{},[40,784,785],{},"vi",[17,787,789],{"id":788},"шаг-1-создаем-файл-службы-service","Шаг 1: Создаем файл службы (.service)",[22,791,792,793,796,797,800],{},"Таймер не выполняет команды напрямую. Он активирует ",[351,794,795],{},"файл службы"," (",[40,798,799],{},".service","), который содержит инструкции по запуску вашей задачи. Начнем с него.",[22,802,803,804,807],{},"Давайте создадим простую службу для резервного копирования домашней директории. Сохраните этот конфиг как ",[40,805,806],{},"/etc/systemd/system/home-backup.service",":",[71,809,813],{"className":810,"code":811,"language":812,"meta":76,"style":76},"language-ini shiki shiki-themes github-light github-dark","[Unit]\nDescription=Резервное копирование домашней директории\n# Запускать службу только если доступна сеть (опционально)\nWants=network-online.target\nAfter=network-online.target\n\n[Service]\nType=oneshot\n# Команда, которую нужно выполнить. Пример с tar и сжатием.\nExecStart=/bin/tar -czf /var/backups/home_$(date +\\%Y-\\%m-\\%d).tar.gz /home\n# Указываем, что задание выполняется один раз за запуск таймера\nRemainAfterExit=yes\n\n[Install]\nWantedBy=multi-user.target\n","ini",[40,814,815,820,825,830,836,842,848,854,860,866,872,878,884,889,895],{"__ignoreMap":76},[80,816,817],{"class":82,"line":83},[80,818,819],{},"[Unit]\n",[80,821,822],{"class":82,"line":118},[80,823,824],{},"Description=Резервное копирование домашней директории\n",[80,826,827],{"class":82,"line":412},[80,828,829],{},"# Запускать службу только если доступна сеть (опционально)\n",[80,831,833],{"class":82,"line":832},4,[80,834,835],{},"Wants=network-online.target\n",[80,837,839],{"class":82,"line":838},5,[80,840,841],{},"After=network-online.target\n",[80,843,845],{"class":82,"line":844},6,[80,846,847],{"emptyLinePlaceholder":473},"\n",[80,849,851],{"class":82,"line":850},7,[80,852,853],{},"[Service]\n",[80,855,857],{"class":82,"line":856},8,[80,858,859],{},"Type=oneshot\n",[80,861,863],{"class":82,"line":862},9,[80,864,865],{},"# Команда, которую нужно выполнить. Пример с tar и сжатием.\n",[80,867,869],{"class":82,"line":868},10,[80,870,871],{},"ExecStart=/bin/tar -czf /var/backups/home_$(date +\\%Y-\\%m-\\%d).tar.gz /home\n",[80,873,875],{"class":82,"line":874},11,[80,876,877],{},"# Указываем, что задание выполняется один раз за запуск таймера\n",[80,879,881],{"class":82,"line":880},12,[80,882,883],{},"RemainAfterExit=yes\n",[80,885,887],{"class":82,"line":886},13,[80,888,847],{"emptyLinePlaceholder":473},[80,890,892],{"class":82,"line":891},14,[80,893,894],{},"[Install]\n",[80,896,898],{"class":82,"line":897},15,[80,899,900],{},"WantedBy=multi-user.target\n",[22,902,903],{},[351,904,905],{},"Ключевые моменты:",[30,907,908,918,934,940],{},[33,909,910,913,914,917],{},[40,911,912],{},"Type=oneshot",": Процесс службы завершается после выполнения ",[40,915,916],{},"ExecStart",". Используется для одноразовых задач.",[33,919,920,922,923,926,927,930,931,362],{},[40,921,916],{},": Основная команда. Обратите внимание на экранирование ",[40,924,925],{},"%"," в ",[40,928,929],{},"date"," (нужно ",[40,932,933],{},"\\%",[33,935,936,939],{},[40,937,938],{},"RemainAfterExit=yes",": Позволяет службе считаться активной после завершения команды. Полезно для мониторинга статуса.",[33,941,942,943,945,946,949,950,533],{},"Если нужно выполнить несколько команд, используйте скрипт и укажите его путь в ",[40,944,916],{},", или через ",[40,947,948],{},"ExecStartPre","/",[40,951,952],{},"ExecStartPost",[17,954,956],{"id":955},"шаг-2-создаем-файл-таймера-timer","Шаг 2: Создаем файл таймера (.timer)",[22,958,959,960,807],{},"Теперь создадим файл таймера, который будет запускать нашу службу по расписанию. Сохраните как ",[40,961,962],{},"/etc/systemd/system/home-backup.timer",[71,964,966],{"className":810,"code":965,"language":812,"meta":76,"style":76},"[Unit]\nDescription=Таймер для ежедневного резервного копирования домашней директории\n\n[Timer]\n# Расписание: каждый день в 02:30\nOnCalendar=*-*-* 02:30:00\n# Если задание было пропущено (компьютер выключен), запустить его при следующей загрузке\nPersistent=true\n# Служба, которую активировать\nUnit=home-backup.service\n\n[Install]\nWantedBy=timers.target\n",[40,967,968,972,977,981,986,991,996,1001,1006,1011,1016,1020,1024],{"__ignoreMap":76},[80,969,970],{"class":82,"line":83},[80,971,819],{},[80,973,974],{"class":82,"line":118},[80,975,976],{},"Description=Таймер для ежедневного резервного копирования домашней директории\n",[80,978,979],{"class":82,"line":412},[80,980,847],{"emptyLinePlaceholder":473},[80,982,983],{"class":82,"line":832},[80,984,985],{},"[Timer]\n",[80,987,988],{"class":82,"line":838},[80,989,990],{},"# Расписание: каждый день в 02:30\n",[80,992,993],{"class":82,"line":844},[80,994,995],{},"OnCalendar=*-*-* 02:30:00\n",[80,997,998],{"class":82,"line":850},[80,999,1000],{},"# Если задание было пропущено (компьютер выключен), запустить его при следующей загрузке\n",[80,1002,1003],{"class":82,"line":856},[80,1004,1005],{},"Persistent=true\n",[80,1007,1008],{"class":82,"line":862},[80,1009,1010],{},"# Служба, которую активировать\n",[80,1012,1013],{"class":82,"line":868},[80,1014,1015],{},"Unit=home-backup.service\n",[80,1017,1018],{"class":82,"line":874},[80,1019,847],{"emptyLinePlaceholder":473},[80,1021,1022],{"class":82,"line":880},[80,1023,894],{},[80,1025,1026],{"class":82,"line":886},[80,1027,1028],{},"WantedBy=timers.target\n",[22,1030,1031],{},[351,1032,905],{},[30,1034,1035,1058,1068],{},[33,1036,1037,1040,1041,1044,1045],{},[40,1038,1039],{},"OnCalendar=*-*-* 02:30:00",": Гибкий синтаксис календаря. ",[40,1042,1043],{},"*"," означает \"любое значение\". Здесь: любой год, любой месяц, любой день в 02:30.\n",[30,1046,1047],{},[33,1048,1049,1050,1053,1054,1057],{},"Примеры: ",[40,1051,1052],{},"Mon *-*-* 09:00:00"," (каждый понедельник в 9 утра), ",[40,1055,1056],{},"*-*-1 00:00:00"," (в первый день каждого месяца).",[33,1059,1060,1063,1064,1067],{},[40,1061,1062],{},"Persistent=true",": Критически важная опция! Если компьютер был выключен в момент срабатывания таймера, ",[40,1065,1066],{},"systemd"," запустит задание сразу же при следующей загрузке системы.",[33,1069,1070,1073,1074,1077,1078,1081],{},[40,1071,1072],{},"Unit=home-backup.service",": Явно указываем, какую службу запускать. Если имя файла службы совпадает с именем таймера (например, ",[40,1075,1076],{},"home-backup.timer"," и ",[40,1079,1080],{},"home-backup.service","), этот параметр можно опустить.",[17,1083,1085],{"id":1084},"шаг-3-перезагружаем-конфигурацию-systemd","Шаг 3: Перезагружаем конфигурацию systemd",[22,1087,1088],{},"После создания обоих файлов необходимо сообщить systemd о их существовании. Выполните команду:",[71,1090,1092],{"className":73,"code":1091,"language":75,"meta":76,"style":76},"sudo systemctl daemon-reload\n",[40,1093,1094],{"__ignoreMap":76},[80,1095,1096,1098,1100],{"class":82,"line":83},[80,1097,42],{"class":86},[80,1099,90],{"class":89},[80,1101,1102],{"class":89}," daemon-reload\n",[22,1104,1105],{},"Эта команда заставляет systemd перечитать все конфигурационные файлы. Без нее новые таймеры и службы не будут видны системе.",[17,1107,1109],{"id":1108},"шаг-4-активируем-и-запускаем-таймер","Шаг 4: Активируем и запускаем таймер",[22,1111,1112],{},"Теперь нужно включить таймер (чтобы он запускался автоматически при загрузке) и, возможно, запустить его сразу для теста.",[71,1114,1116],{"className":73,"code":1115,"language":75,"meta":76,"style":76},"# 1. Включить автозапуск таймера при загрузке системы\nsudo systemctl enable home-backup.timer\n\n# 2. Запустить таймер немедленно (для проверки)\nsudo systemctl start home-backup.timer\n\n# 3. Проверить статус\nsudo systemctl status home-backup.timer\n",[40,1117,1118,1123,1134,1138,1143,1153,1157,1162],{"__ignoreMap":76},[80,1119,1120],{"class":82,"line":83},[80,1121,1122],{"class":259},"# 1. Включить автозапуск таймера при загрузке системы\n",[80,1124,1125,1127,1129,1131],{"class":82,"line":118},[80,1126,42],{"class":86},[80,1128,90],{"class":89},[80,1130,125],{"class":89},[80,1132,1133],{"class":89}," home-backup.timer\n",[80,1135,1136],{"class":82,"line":412},[80,1137,847],{"emptyLinePlaceholder":473},[80,1139,1140],{"class":82,"line":832},[80,1141,1142],{"class":259},"# 2. Запустить таймер немедленно (для проверки)\n",[80,1144,1145,1147,1149,1151],{"class":82,"line":838},[80,1146,42],{"class":86},[80,1148,90],{"class":89},[80,1150,113],{"class":89},[80,1152,1133],{"class":89},[80,1154,1155],{"class":82,"line":844},[80,1156,847],{"emptyLinePlaceholder":473},[80,1158,1159],{"class":82,"line":850},[80,1160,1161],{"class":259},"# 3. Проверить статус\n",[80,1163,1164,1166,1168,1170],{"class":82,"line":856},[80,1165,42],{"class":86},[80,1167,90],{"class":89},[80,1169,93],{"class":89},[80,1171,1133],{"class":89},[22,1173,1174,1175,1178],{},"Вы должны увидеть активный (",[40,1176,1177],{},"active (waiting)",") таймер и время следующего запуска (Next elapse).",[178,1180],{},[17,1182,1184],{"id":1183},"шаг-5-мониторинг-и-управление","Шаг 5: Мониторинг и управление",[63,1186,1188],{"id":1187},"просмотр-всех-активных-таймеров","Просмотр всех активных таймеров",[22,1190,1191],{},"Чтобы увидеть список всех настроенных таймеров и время их следующего срабатывания, используйте:",[71,1193,1195],{"className":73,"code":1194,"language":75,"meta":76,"style":76},"systemctl list-timers\n",[40,1196,1197],{"__ignoreMap":76},[80,1198,1199,1201],{"class":82,"line":83},[80,1200,208],{"class":86},[80,1202,1203],{"class":89}," list-timers\n",[22,1205,1206],{},"Эта команда покажет вам таблицу с именем таймера, временем следующего запуска, временем последнего запуска и юнитом, который он активирует.",[63,1208,1210],{"id":1209},"просмотр-логов","Просмотр логов",[22,1212,1213,1214,807],{},"Все, что выводит ваша служба (включая ошибки), попадает в журнал systemd. Для просмотра используйте ",[40,1215,729],{},[71,1217,1219],{"className":73,"code":1218,"language":75,"meta":76,"style":76},"# Логи конкретного таймера и связанной с ним службы\nsudo journalctl -u home-backup.timer -u home-backup.service -f\n\n# Логи за последний день\nsudo journalctl -u home-backup.service --since \"1 day ago\"\n",[40,1220,1221,1226,1247,1251,1256],{"__ignoreMap":76},[80,1222,1223],{"class":82,"line":83},[80,1224,1225],{"class":259},"# Логи конкретного таймера и связанной с ним службы\n",[80,1227,1228,1230,1233,1236,1239,1241,1244],{"class":82,"line":118},[80,1229,42],{"class":86},[80,1231,1232],{"class":89}," journalctl",[80,1234,1235],{"class":147}," -u",[80,1237,1238],{"class":89}," home-backup.timer",[80,1240,1235],{"class":147},[80,1242,1243],{"class":89}," home-backup.service",[80,1245,1246],{"class":147}," -f\n",[80,1248,1249],{"class":82,"line":412},[80,1250,847],{"emptyLinePlaceholder":473},[80,1252,1253],{"class":82,"line":832},[80,1254,1255],{"class":259},"# Логи за последний день\n",[80,1257,1258,1260,1262,1264,1266,1269],{"class":82,"line":838},[80,1259,42],{"class":86},[80,1261,1232],{"class":89},[80,1263,1235],{"class":147},[80,1265,1243],{"class":89},[80,1267,1268],{"class":147}," --since",[80,1270,1271],{"class":89}," \"1 day ago\"\n",[63,1273,1275],{"id":1274},"остановка-и-отключение","Остановка и отключение",[30,1277,1278,1287],{},[33,1279,1280,1283,1284],{},[351,1281,1282],{},"Остановить"," текущий запуск (если он в процессе): ",[40,1285,1286],{},"sudo systemctl stop home-backup.timer",[33,1288,1289,1077,1291,1294,1295],{},[351,1290,1282],{},[351,1292,1293],{},"отключить"," автозапуск: ",[40,1296,1297],{},"sudo systemctl disable --now home-backup.timer",[17,1299,1301],{"id":1300},"шаг-6-расширенные-возможности-и-примеры","Шаг 6: Расширенные возможности и примеры",[63,1303,1305],{"id":1304},"запуск-с-задержкой-после-загрузки","Запуск с задержкой после загрузки",[22,1307,1308,1309,807],{},"Если задача должна запускаться не по календарю, а через некоторое время после загрузки системы (например, чтобы дать время на запуск сетевых служб), используйте ",[40,1310,1311],{},"OnBootSec",[71,1313,1315],{"className":810,"code":1314,"language":812,"meta":76,"style":76},"[Timer]\nOnBootSec=15min\nUnit=home-backup.service\n",[40,1316,1317,1321,1326],{"__ignoreMap":76},[80,1318,1319],{"class":82,"line":83},[80,1320,985],{},[80,1322,1323],{"class":82,"line":118},[80,1324,1325],{},"OnBootSec=15min\n",[80,1327,1328],{"class":82,"line":412},[80,1329,1015],{},[22,1331,1332,1333,1077,1336,1339],{},"Это запустит службу через 15 минут после загрузки. Можно комбинировать: ",[40,1334,1335],{},"OnBootSec=5min",[40,1337,1338],{},"OnUnitActiveSec=1h"," для запуска через 5 минут после загрузки и затем каждый час.",[63,1341,1343],{"id":1342},"периодический-запуск-интервал","Периодический запуск (интервал)",[22,1345,1346,1347,807],{},"Для интервалов, не привязанных к календарю (например, \"каждые 30 минут\"), используйте ",[40,1348,1349],{},"OnUnitActiveSec",[71,1351,1353],{"className":810,"code":1352,"language":812,"meta":76,"style":76},"[Timer]\nOnUnitActiveSec=30min\nUnit=home-backup.service\n",[40,1354,1355,1359,1364],{"__ignoreMap":76},[80,1356,1357],{"class":82,"line":83},[80,1358,985],{},[80,1360,1361],{"class":82,"line":118},[80,1362,1363],{},"OnUnitActiveSec=30min\n",[80,1365,1366],{"class":82,"line":412},[80,1367,1015],{},[22,1369,1370,1371,1374],{},"Это означает: запускать службу каждые 30 минут после ",[351,1372,1373],{},"последнего успешного запуска"," этой службы.",[63,1376,1378],{"id":1377},"случайный-рандомизированный-запуск","Случайный (рандомизированный) запуск",[22,1380,1381,1382,807],{},"Чтобы избежать \"шторма\" при одновременном запуске множества таймеров на многих машинах (например, для обновлений), добавьте ",[40,1383,1384],{},"RandomizedDelaySec",[71,1386,1388],{"className":810,"code":1387,"language":812,"meta":76,"style":76},"[Timer]\nOnCalendar=daily\nRandomizedDelaySec=1h\n",[40,1389,1390,1394,1399],{"__ignoreMap":76},[80,1391,1392],{"class":82,"line":83},[80,1393,985],{},[80,1395,1396],{"class":82,"line":118},[80,1397,1398],{},"OnCalendar=daily\n",[80,1400,1401],{"class":82,"line":412},[80,1402,1403],{},"RandomizedDelaySec=1h\n",[22,1405,1406],{},"Задание будет запущено в случайный момент в течение часа после полуночи.",[17,1408,320],{"id":319},[737,1410,1411,1424,1433],{},[33,1412,1413,1416,1417,1420,1421,533],{},[351,1414,1415],{},"Убедитесь, что таймер активен:"," ",[40,1418,1419],{},"systemctl is-active home-backup.timer"," должен вернуть ",[40,1422,1423],{},"active",[33,1425,1426,1416,1429,1432],{},[351,1427,1428],{},"Проверьте расписание:",[40,1430,1431],{},"systemctl list-timers | grep home-backup"," покажет время следующего запуска.",[33,1434,1435,1438,1439,1442,1443],{},[351,1436,1437],{},"Дождитесь срабатывания"," (или запустите вручную ",[40,1440,1441],{},"sudo systemctl start home-backup.timer",") и проверьте:\n",[30,1444,1445,1451,1457],{},[33,1446,1447,1448],{},"Файл бэкапа: ",[40,1449,1450],{},"ls -lh /var/backups/",[33,1452,1453,1454],{},"Статус службы: ",[40,1455,1456],{},"systemctl status home-backup.service",[33,1458,1459,1460],{},"Журнал: ",[40,1461,1462],{},"sudo journalctl -u home-backup.service --no-pager -n 20",[22,1464,1465],{},"Если бэкап создался и в логах нет ошибок — всё работает.",[17,1467,345],{"id":344},[63,1469,1471],{"id":1470},"таймер-не-запускается-по-расписанию","Таймер не запускается по расписанию",[30,1473,1474,1487,1495],{},[33,1475,1476,1482,1483,1486],{},[351,1477,1478,1479,533],{},"Проверьте синтаксис ",[40,1480,1481],{},"OnCalendar"," Используйте ",[40,1484,1485],{},"systemd-analyze calendar '*-*-* 02:30:00'"," для валидации.",[33,1488,1489,1494],{},[351,1490,1491,1492],{},"Убедитесь, что ",[40,1493,1062],{}," установлено, если компьютер может быть выключен в момент запуска.",[33,1496,1497,1502,1503,1505,1506,1508],{},[351,1498,1499,1500,533],{},"Проверьте, не конфликтует ли таймер с ",[40,1501,725],{}," Systemd и ",[40,1504,725],{}," независимы. Если задача уже есть в ",[40,1507,725],{},", отключите её, чтобы избежать двойного запуска.",[63,1510,1512],{"id":1511},"служба-запущенная-таймером-завершается-с-ошибкой","Служба, запущенная таймером, завершается с ошибкой",[30,1514,1515,1527,1535],{},[33,1516,1517,1523,1524,1526],{},[351,1518,1519,1520,533],{},"Смотрите логи ",[40,1521,1522],{},"journalctl -u \u003Cservice>.service"," Ошибка почти всегда в команде ",[40,1525,916],{}," (неверный путь, нет прав, недостаточно места).",[33,1528,1529,1532,1533,533],{},[351,1530,1531],{},"Проверьте права доступа"," к скрипту/команде и к целевым директориям/файлам. Для системных служб часто требуется ",[40,1534,493],{},[33,1536,1537,1541,1542,748,1545,533],{},[351,1538,1491,1539],{},[40,1540,912],{}," соответствует вашей задаче. Если команда запускает демон, может потребоваться ",[40,1543,1544],{},"Type=forking",[40,1546,1547],{},"Type=notify",[63,1549,1551,1552],{"id":1550},"таймер-не-виден-в-systemctl-list-timers","Таймер не виден в ",[40,1553,1554],{},"systemctl list-timers",[30,1556,1557,1566,1578,1591],{},[33,1558,1559,1565],{},[351,1560,1561,1562],{},"Выполнили ли вы ",[40,1563,1564],{},"daemon-reload"," после создания файлов?",[33,1567,1568,1571,1572,1575,1576,533],{},[351,1569,1570],{},"Файлы имеют правильные имена и расположение?"," Для системных юнитов: ",[40,1573,1574],{},"/etc/systemd/system/\u003Cname>.timer",". Для пользовательских: ",[40,1577,764],{},[33,1579,1580,1416,1583,1586,1587,1590],{},[351,1581,1582],{},"Таймер включен?",[40,1584,1585],{},"sudo systemctl enable \u003Cname>.timer"," (для системного) или ",[40,1588,1589],{},"systemctl --user enable \u003Cname>.timer"," (для пользовательского).",[33,1592,1593,1416,1596,1599,1600,1602,1603,1606,1607,362],{},[351,1594,1595],{},"Проверьте, не активирован ли таймер сразу:",[40,1597,1598],{},"systemctl status \u003Cname>.timer",". Если он ",[40,1601,1177],{},", он работает. Если ",[40,1604,1605],{},"inactive (dead)",", возможно, его нужно запустить (",[40,1608,1609],{},"start",[402,1611,1612],{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":76,"searchDepth":118,"depth":118,"links":1614},[1615,1616,1617,1618,1619,1620,1621,1626,1631,1632],{"id":19,"depth":118,"text":20},{"id":27,"depth":118,"text":28},{"id":788,"depth":118,"text":789},{"id":955,"depth":118,"text":956},{"id":1084,"depth":118,"text":1085},{"id":1108,"depth":118,"text":1109},{"id":1183,"depth":118,"text":1184,"children":1622},[1623,1624,1625],{"id":1187,"depth":412,"text":1188},{"id":1209,"depth":412,"text":1210},{"id":1274,"depth":412,"text":1275},{"id":1300,"depth":118,"text":1301,"children":1627},[1628,1629,1630],{"id":1304,"depth":412,"text":1305},{"id":1342,"depth":412,"text":1343},{"id":1377,"depth":412,"text":1378},{"id":319,"depth":118,"text":320},{"id":344,"depth":118,"text":345,"children":1633},[1634,1635,1636],{"id":1470,"depth":412,"text":1471},{"id":1511,"depth":412,"text":1512},{"id":1550,"depth":412,"text":1637},"Таймер не виден в systemctl list-timers","2026-02-16 18:55:58","Подробное руководство по настройке systemd-таймеров. Узнайте, как создавать, управлять и отлаживать задания по расписанию с помощью systemd. Практические примеры и советы.","medium","15-30 минут",[1643,1646,1649],{"question":1644,"answer":1645},"В чем основное преимущество systemd-таймера перед cron?","Systemd-таймеры интегрированы с журналом systemd (journalctl), поддерживают календарные события (например 'Mon *-*-* 09:00:00' для каждого понедельника), могут запускаться с задержкой после загрузки системы (OnBootSec) и не зависят от отдельного демона.",{"question":1647,"answer":1648},"Как проверить, что мой таймер работает?","Используйте `systemctl list-timers --all` для просмотра всех таймеров и времени следующего запуска. Логи конкретного таймера смотрите через `journalctl -u \u003Cимя_таймера>.timer`.",{"question":1650,"answer":1651},"Можно ли запускать таймер только при наличии сети?","Да, в юните службы (не таймера!) укажите `Wants=network-online.target` и `After=network-online.target`. Это потребует, чтобы сеть была полностью активна перед запуском.",[1653,1656,1659,1662,1665,1668],{"name":1654,"text":1655},"Понимание структуры: два юнита","Systemd-таймер состоит из двух файлов: файл службы (`.service`) с описанием задачи и файл таймера (`.timer`) с расписанием. Таймер активирует службу по заданному расписанию.",{"name":1657,"text":1658},"Создание файла службы","Создайте файл `/etc/systemd/system/my-backup.service` (или в `~/.config/systemd/user/` для пользовательского таймера). Укажите `[Service]` с `Type=oneshot` и команду `ExecStart`.",{"name":1660,"text":1661},"Создание файла таймера","Создайте файл `/etc/systemd/system/my-backup.timer`. В секции `[Timer]` задайте расписание через `OnCalendar` (календарь) или `OnActiveSec` (интервал). Укажите `Unit=my-backup.service`.",{"name":1663,"text":1664},"Перезагрузка конфигурации systemd","После создания файлов выполните `sudo systemctl daemon-reload`, чтобы systemd узнал о новых юнитах.",{"name":1666,"text":1667},"Активация и запуск таймера","Включите таймер для автозапуска при загрузке: `sudo systemctl enable my-backup.timer`. Запустите его немедленно: `sudo systemctl start my-backup.timer`.",{"name":1669,"text":1670},"Мониторинг и отладка","Проверяйте статус: `systemctl status my-backup.timer`. Смотрите историю запусков таймера и связанной службы в журналах: `journalctl -u my-backup.timer -u my-backup.service --since \"1 hour ago\"`.","PT20M",[1673,1674,1675,1676,1677,1678,1679,1680],"systemd timer","запуск службы по расписанию systemd","как настроить cron через systemd","systemd timer unit пример","отладка systemd таймера","замена cron systemd","автоматизация задач linux systemd","systemd timer vs cron",{},[1683,1684,1685],"/guides/linux/systemd-service-files","/guides/linux/cron-advanced","/errors/linux/systemd-failed-to-start",{"title":710,"description":1639},"guides/linux/systemd-timers","В этом гайде вы научитесь использовать systemd-таймеры — современный и мощный механизм планирования задач в Linux, который предлагает больше возможностей, чем классический cron. Мы разберем создание юнитов, управление через systemctl и решение типичных проблем.",[1066,475,1690,725,1691,1692,1693],"автоматизация","администрирование","timer","sysadmin","AecptPlgrI_6D-HCeO3Jt8hMyL_1oA05JgVxnlxumzQ"]