Жұмыс жоспарлаушы cron: Unix жүйелерінде тапсырмаларды автоматтандыру үшін қолданылады. Белгілі уақытта скрипттерді іске қосып, жүйе күтімін жеңілдетеді.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Unix-тәрізді операциялық жүйелер үшін жұмыс жоспарлаушысы
Job scheduler for Unix like operating systems
Cron командалық жолдың құралы Unix-тәрізді операциялық жүйелерде жұмыстарды жоспарлау үшін қолданылады. Бағдарламалық ортаны орнатып, күтіп ұстайтын пайдаланушылар cron-ды жұмыс жоспарларын (командалар немесе shell скрипттері), сонымен қатар cron жұмыстары деп те аталатын, белгілі уақытта, күні немесе аралықта мерзімді түрде орындау үшін пайдаланады. Ол әдетте жүйелік қызмет көрсетуді немесе әкімшілдік жұмыстарды автоматтандырады, бірақ оның көп мақсатты болуы оны, мысалы, интернеттен файлдарды жүктеу және электрондық поштаны белгілі интервалмен жүктеу сияқты істерге де пайдалы етеді. Cron қайталанатын тапсырмаларды жоспарлауға ең қолайлы. Бір реттік тапсырмаларды жоспарлау үшін байланыстырылған at құралын пайдалануға болады. Cron атауы грек тіліндегі Chronos, яғни "уақыт" деген сөзден шыққан.
The cron command line utility is a job scheduler on Unix like operating systems. Users who set up and maintain software environments use cron to schedule jobs (commands or shell scripts), also known as cron jobs, to run periodically at fixed times, dates, or intervals. It typically automates system maintenance or administration—though its general purpose nature makes it useful for things like downloading files from the Internet and downloading email at regular intervals. Cron is most suitable for scheduling repetitive tasks. Scheduling one time tasks can be accomplished using the associated at utility. Cron's name originates from Chronos, the Greek word for time.
Уақыт белдеуін басқару
Көптеген cron іске асырулары crontab жазбаларын cron демоны жұмыс істейтін жүйелік уақыт белдеуі бойынша түсіндіреді. Бұл үлкен, көп пайдаланушылы машинада әртүрлі уақыт белдеулеріндегі пайдаланушылар болған жағдайда, әсіресе жүйедегі әдепкі уақыт белдеуі күндізгі уақыт ауысымын қамтитын болса, дау тудыруы мүмкін. Сондықтан, cron іске асыруы ерекше жағдай ретінде пайдаланушының crontab-тарында "CRON TZ=<уақыт белдеуі>" түріндегі жолдарды тани алады және одан кейінгі crontab жазбаларын осы уақыт белдеуіне сәйкес түсіндіреді.
Most cron implementations simply interpret crontab entries in the system time zone setting that the cron daemon runs under. This can be a source of dispute if a large multi user machine has users in several time zones, especially if the system default time zone includes the potentially confusing DST. Thus, a cron implementation may as a special case recognize lines of the form "CRON TZ=<time zone>" in user crontabs, interpreting subsequent crontab entries relative to that time zone.
Қазіргі нұсқалары
GNU жобасы мен Linux пайда болғаннан кейін жаңа cron түрлері пайда болды. Олардың ең көп тарағаны – Пол Викси 1987 жылы жазған Vixie cron. Vixie cron-ның 3-ші нұсқасы 1993 жылдың соңында, ал 4.1 нұсқасы ISC Cron деп аталды және 2004 жылдың қаңтарында шығарылды. 3-ші нұсқа, шағын түзетулермен, Linux және BSD дистрибутивтерінің көпшілігінде қолданылады. 2007 жылы Red Hat, vixie cron 4.1-ді cronie жобасына бұтақтады және 2009 жылы anacron 2.3 қосты. Дегенмен, Anacron – тәуелсіз cron бағдарламасы емес; оны басқа cron жұмысы шақыруы тиіс. DragonFly-дің dcron-ін оның негізін қалаушысы Мэтт Диллон жасады, ал 2010 жылы Джим Прайор оның күтімін өз мойнына алды. 2003 жылы Дейл Меллор Guile тілінде жазылған mcron-ді ұсынды, ол Vixie cron-мен үйлесімді болып табылады, сонымен қатар жоспарлау есептеулері мен жұмыс анықтамаларында кез келген схема кодын пайдалануға мүмкіндік беретіндей икемділікке ие. Mcron демоны мен crontab файлдары көбінесе схема тілінде жазылады (бірақ mcron дәстүрлі Vixie crontab-тарын да қабылдайды), сондықтан пайдаланушының жұмыс кезегінің жиынтық ахуалы оның жұмыс кодына қолжетімді, егер басқа жұмыстардың нәтижелері белгілі бір шарттарға сай келсе, олар орындалуы мүмкін. Mcron әдетте Guix пакеттік менеджерімен бірге орнатылады, ол пакеттік менеджердің mcron crontab-тарын монодикалық түрде жасауға арналған мүмкіндіктерін (қызметтерін) қамтиды, сонымен қатар жұмысты орындау үшін қажетті пакеттердің орнатылғанын және crontab-тардың оларға дұрыс сілтеме жасағанын қамтамасыз етеді. Веб-хостинг ортасында cron мүмкіндігі болмаған жағдайларда, вебcron шешімі жүйектік тапсырмаларды белгілі бір уақыт аралығымен орындау үшін жоспарлайды.
With the advent of the GNU Project and Linux, new crons appeared. The most prevalent of these is the Vixie cron, originally coded by Paul Vixie in 1987. Version 3 of Vixie cron was released in late 1993. Version 4.1 was renamed to ISC Cron and was released in January 2004. Version 3, with some minor bugfixes, is used in most distributions of Linux and BSDs. In 2007, Red Hat forked vixie cron 4.1 to the cronie project and included anacron 2.3 in 2009. Anacron is not an independent cron program however; another cron job must call it. DragonFly's dcron was made by its founder Matt Dillon, and its maintainership was taken over by Jim Pryor in 2010. In 2003, Dale Mellor introduced mcron, a cron variant written in Guile which provides cross compatibility with Vixie cron while also providing greater flexibility as it allows arbitrary scheme code to be used in scheduling calculations and job definitions. Since both the mcron daemon and the crontab files are usually written in scheme (though mcron also accepts traditional Vixie crontabs), the cumulative state of a user's job queue is available to their job code, which may be scheduled to run iff the results of other jobs meet certain criteria. Mcron is deployed by default under the Guix package manager, which includes provisions (services) for the package manager to monadically emit mcron crontabs while both ensuring that packages needed for job execution are installed and that the corresponding crontabs correctly refer to them. A webcron solution schedules ring tasks to run on a regular basis wherever cron implementations are not available in a web hosting environment.
Стандартты емес таңбалар
Келесілер стандартты емес символдар болып табылады және тек кейбір cron нұсқаларында ғана қолданылады, мысалы Quartz Java жоспарлаушысында. 'L' символы "соңғы" дегенді білдіреді. Апта күні өрісінде қолданылғанда, ол "айдың соңғы жұмасы" сияқты конструкцияларды көрсетуге мүмкіндік береді. Ай күні өрісінде ол айдың соңғы күнін көрсетеді. 'W' символы ай күні өрісінде рұқсат етіледі. Бұл символ берілген күнді ең жақын апта күніне (дүйсенбіден жұмаға дейін) орналастыру үшін қолданылады. Мысалы, егер ай күні өрісінің мәні ретінде "15W" көрсетілсе, мағынасы: "айдың 15-іне ең жақын апта күні". Егер 15-і сенбі болса, триггер 14-і жұма күні орындалады. Егер 15-і жексенбі болса, триггер 16-ы дүйсенбі күні орындалады. Егер 15-і сейсенбі болса, триггер сейсенбінің 15-і күні орындалады. Дегенмен, егер ай күні үшін "1W" көрсетілсе және 1-і сенбі болса, триггер 3-і дүйсенбі күні орындалады, себебі ол ай күндерінің шегінен "асып" өтпейді. 'W' символын ай күні бір ғана күн болғанда ғана, диапазон немесе күндер тізімі болмағанда қолдануға болады. Апта күні өрісі үшін '#' символына рұқсат етіледі, одан кейін бірден бесеуге дейінгі сан келуі керек. Бұл "бір айдың екінші жұмасы" сияқты конструкцияларды көрсетуге мүмкіндік береді. Мысалы, "5#3" енгізілсе, ол әр айдың үшінші жұмасына сәйкес келеді. Кейбір нұсқаларда сұрақ белгісі (?) ай күнін немесе апта күнін бос қалдыру үшін ' ' символының орнына қолданылады. Басқа cron нұсқалары "?" символын cron демонының басталу уақытымен алмастырады, сондықтан егер cron 08:25-те басталып, қайта іске қосылғанға дейін күнде осы уақытта орындалады. Слэш (/) Vixie cron-да слэштерді қадамдық мәндерді көрсету үшін диапазонмен біріктіруге болады. Бұл жағдайда, ол минуттар бөліміндегі Vixie cron кестесімен бірдей. Сол сияқты, сағаттар, күндер және айлар үшін қосымша ' ' символдарын алып тастауға болады. 'H' символы Jenkins үздіксіз интеграция жүйесінде "хештелген" мән ауыстырылғанын көрсету үшін қолданылады. Осылайша, "20" сияқты нақты санның орнына, сағат сайын 20 минуттан кейін орындалатынын білдіретін, "H" символы әр тапсырма үшін белгіленбеген, бірақ өзгермейтін уақытта сағат сайын орындалатынын көрсетеді. Бұл тапсырмаларды бір уақытта бастап, ресурстар үшін бәсекелесудің орнына уақыт бойынша бөлуге мүмкіндік береді.
The following are non standard characters and exist only in some cron implementations, such as the Quartz Java scheduler. 'L' stands for "last". When used in the day of week field, it allows specifying constructs such as "the last Friday" ("") of a given month. In the day of month field, it specifies the last day of the month. The 'W' character is allowed for the day of month field. This character is used to specify the weekday (Monday Friday) nearest the given day. As an example, if "" is specified as the value for the day of month field, the meaning is: "the nearest weekday to the 15th of the month." So, if the 15th is a Saturday, the trigger fires on Friday the 14th. If the 15th is a Sunday, the trigger fires on Monday the 16th. If the 15th is a Tuesday, then it fires on Tuesday the 15th. However, if "1W" is specified as the value for day of month, and the 1st is a Saturday, the trigger fires on Monday the 3rd, as it does not 'jump' over the boundary of a month's days. The 'W' character can be specified only when the day of month is a single day, not a range or list of days. Hash '#' is allowed for the day of week field, and must be followed by a number between one and five. It allows specifying constructs such as "the second Friday" of a given month. For example, entering "5#3" in the day of week field corresponds to the third Friday of every month. Question mark In some implementations, used instead of '' for leaving either day of month or day of week blank. Other cron implementations substitute "?" with the start up time of the cron daemon, so that would be updated to if cron started up on 8:25am, and would run at this time every day until restarted again. Slash (/) In vixie cron, slashes can be combined with ranges to specify step values. In these cases, is the same as a vixie cron schedule of in the minutes section. Similarly, you can remove the extra from , from , and from for hours, days, and months; respectively. 'H' is used in the Jenkins continuous integration system to indicate that a "hashed" value is substituted. Thus instead of a fixed number such as '' which means at 20 minutes after the hour every hour, '' indicates that the task is performed every hour at an unspecified but invariant time for each task. This allows spreading out tasks over time, rather than having all of them start at the same time and compete for resources.