Автоматжуулалт (Automation)
Заримдаа та тодорхой үйлдэл хийдэг скрипт бичиж, түүнийгээ огноо/цагийн тодорхой давтамжтайгаар ажиллуулахыг хүсдэг (жишээ нь, нөөцлөх даалгавар). Үүнд зориулан цаана ажиллаж, тогтсон хугацаанд идэвхждэг ad hoc (тусгай) шийдлийг үргэлж өөрөө бичиж болох юм. Гэхдээ ихэнх UNIX системүүд нь энгийн дүрэмд суурилан даалгаврыг нэг минут хүртэлх давтамжтайгаар ажиллуулж чаддаг cron даймонтой (daemon) ирдэг.
Ихэнх UNIX системүүдэд cron даймон болох crond нь анхнаасаа ажиллаж байдаг ч
та ps aux | grep crond тушаалаар үүнийг үргэлж шалгаж болно.
Crontab
Cron-ийн тохиргооны файлыг crontab -l тушаалаар харж, crontab -e тушаалаар
засварлаж болно. Cron-ийн ашигладаг цагийн формат нь хэрэглэгч болон тушаалын
хамт зайгаар тусгаарлагдсан таван талбараас бүрддэг:
- minute - Тушаал ажиллах цагийн минут бөгөөд ‘0’-оос ‘59’-ийн хооронд байна.
- hour - Тушаал ажиллах цаг бөгөөд 24 цагийн форматаар заагддаг. Утга нь 0-оос 23-ын хооронд байна (0 нь шөнө дунд).
- dom - Энэ нь Сарын Өдөр (Day of Month) бөгөөд тушаалыг ажиллуулахыг хүссэн өдөр. Жишээ нь, сар бүрийн 19-нд ажиллуулах бол сарын өдөр нь 19 байна.
- month - Тушаал ажиллах сар. Үүнийг тоогоор (1-12) эсвэл сарын нэрээр (жишээ нь, May) зааж өгч болно.
- dow - Тушаал ажиллуулах Долоо Хоногийн Өдөр (Day of Week). Үүнийг мөн тоогоор (0-7) эсвэл өдрийн нэрээр (жишээ нь, sun) зааж өгч болно.
- user - Тушаалыг ажиллуулах хэрэглэгч.
- command - Ажиллуулахыг хүсэж буй тушаал. Энэ талбар нь олон үг эсвэл зай агуулж болно.
Одоор тэмдэглэсэн * нь бүх утгыг илэрхийлэх бөгөөд одны ард зураас болон тоо
ашиглавал n өдөр/цаг тутамд ажиллахыг заана. Жишээлбэл, */5 нь таван нэгж тутамд
гэсэн үг. Зарим жишээнүүд:
*/5 * * * * # Таван минут тутамд
0 * * * * # Цаг бүрийн эхэнд (жишээ нь 1:00, 2:00)
0 9 * * * # Өдөр бүр өглөөний 9:00 цагт
0 9-17 * * * # Өглөөний 9:00-өөс оройн 5:00 цаг хүртэл цаг тутамд
0 0 * * 5 # Баасан гараг бүр шөнийн 12:00 цагт
0 0 1 */2 * # Өнжөөд нэг сарын эхний өдөр, шөнийн 12:00 цагт
Та илүү олон нийтлэг crontab хуваарийн жишээг crontab.guru-ээс харах боломжтой.
Бүрхүүлийн орчин ба лог хөтлөлт
Cron-ийг ашиглах үед тохиолддог нийтлэг алдаа бол энэ нь .bashrc, .zshrc
гэх мэт энгийн бүрхүүлийн (shell) ачаалдаг орчны скриптүүдийг уншдаггүй бөгөөд
гаралтыг хаашаа ч логдож хадгалдаггүй явдал юм. Үүн дээр нэмээд хамгийн дээд
давтамж нь нэг минут байдаг тул эхлэн сурч байгаа үед cron скриптүүдийн алдааг
олох нь нэлээд төвөгтэй байж болно.
Орчны тохиргоог зөв ажиллуулахын тулд өөрийн скриптэд үргэлж абсолют замыг
ашиглаж, PATH зэрэг орчны хувьсагчдыг скрипт дотроо тохируулах хэрэгтэй.
Лог хөтлөх үйл явцыг хялбарчлахын тулд crontab-ийг дараах хэлбэрээр бичихийг
зөвлөж байна:
* * * * * user /path/to/cronscripts/every_minute.sh >> /tmp/cron_every_minute.log 2>&1
Мөн скриптээ тусдаа файлд бичиж бэлдээрэй. >> нь файлын төгсгөлд шинэ гаралт
нэмдэг болохыг, мөн 2>&1 нь stderr гаралтыг stdout руу чиглүүлдэг
болохыг санаарай (хэдийгээр та тэдгээрийг тусад нь байлгахыг хүсэж болох ч).
Anacron
Cron-ийг ашиглахад анхаарах нэг зүйл бол хэрэв тушаал ажиллах ёстой цагт
компьютер унтарсан эсвэл унтсан (asleep) төлөвт байвал тушаал ажиллахгүй
өнгөрдөг. Байнга ажилладаг богино давтамжтай даалгаврын хувьд энэ нь зүгээр байж
болох ч хугацаа нь хол даалгаврыг заавал ажиллуулахыг хүсэж болох юм.
anacron нь ажиллах давтамжийг хоногоор
зааж өгдгөөс бусдаар cron-той маш төсөөтэй ажилладаг. Cron-оос ялгаатай нь энэ
нь компьютерыг тасралтгүй асаалттай байх албагүй гэж үздэг. Тиймээс өдөр бүр 24
цаг ажилладаггүй компьютеруудад өдөр тутмын, долоо хоногийн, болон сарын тогтмол
ажлуудыг удирдахад үүнийг ашиглаж болно.
Дасгалууд
-
Таны татаж авсан файлуудын (Downloads) хавтас руу минут тутамд шалгаж, зураг болох ямар ч файлыг (та MIME төрлийг судалж үзэх эсвэл нийтлэг зургийн өргөтгөлийг тааруулах тогтмол илэрхийлэл ашиглаж болно) олоод Зураг (Pictures) хавтас руу тань зөөдөг скрипт бичээрэй.
-
Таны систем дэх хуучирсан багцуудыг долоо хоног бүр шалгаж, тэдгээрийг шинэчлэхийг сануулдаг эсвэл автоматаар шинэчилдэг cron скрипт бичээрэй.
Лиценз: CC BY-NC-SA.