Işlərin cədvəli üçün Linux Crontab faylını düzəltmək

Giriş

Daimi aralıklarla prosesləri idarə etmək üçün istifadə edilən cron adlı bir Linux proqramı var.

Bunu etmək yolu, komutların çalıştırılmasına sisteminizdə müəyyən qovluqları yoxlamaqdır. Məsələn, /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly və /etc/cron.monthly adlı bir qovluq var. / Etc / crontab adlı bir fayl var.

Mənim cari olaraq, simvolları müvafiq qovluqlara yerləşdirə bilərsiniz ki, onları müntəzəm aralıqlarla işə salın.

Məsələn, terminal pəncərəsini açın (CTRL, ALT və T düymələrinə basaraq) və aşağıdakı ls əmrini işləyin :

ls / etc / cron *

Saat, gündəlik, həftəlik və aylıq fəaliyyət göstərən proqramlar və ya skriptlərin siyahısını görəcəksiniz.

Bu qovluqlarla baş verən problemlər bir az qeyri-müəyyəndir. Məsələn, hər gün skript gündə bir dəfə işləyəcək, ancaq scriptin həmin gün ərzində işləməyəcəyi müddətdə nəzarət yoxdur.

Crontab faylının olduğu yer budur.

Crontab faylını düzəltməklə, onu çalıştırmak istediğiniz dəqiq tarixi və saatı çalıştırmak üçün bir skript və ya proqram əldə edə bilərsiniz. Məsələn, hər gecə saat 18: 00-da fayllarınızı zənginləşdirmək istərdiniz.

İzinlər

Crontab komutu bir istifadəçinin bir crontab faylını redaktə etməyə icazə verdiyini tələb edir. Crontab icazələrini idarə etmək üçün əsasən iki fayl var:

Əgər /etc/cron.allow faylı varsa, crontab faylını redaktə etmək istəyən istifadəçi bu faylda olmalıdır. Cron.allow faylı mövcud deyilsə, lakin /etc/cron.deny faylı varsa, istifadəçi bu faylda olmamalıdır.

Hər iki fayl mövcud olduqda /etc/cron.allow /etc/cron.deny faylını əvəz edir.

Hər hansı bir fayl mövcud deyilsə, istifadəçi crontab-nı redaktə edə biləcəyi sistem konfiqurasiyasından asılıdır.

Kök istifadəçi həmişə crontab faylını düzəldə bilər. Ya crontab komutunu çalıştırmak üçün kök istifadəçi və ya sudo əmrinə keçmək üçün su komandanızı istifadə edə bilərsiniz.

Crontab faylını redaktə etmək

Rəqəmləri olan hər bir istifadəçi öz crontab faylını yarada bilər. Cron əmri əsasən birdən çox crontab faylının varlığını axtarır və onların hamısı vasitəsilə işləyir.

Bir crontab faylı olub olmadığını yoxlamaq üçün aşağıdakı komutu çalıştırın:

crontab -l

Əgər bir crontab faylınız yoxdursa, "crontab üçün heç bir crontab" mesajı əks olunacaq, əks halda crontab dosyanız görünəcək (bu funksiya sistemdən sistemə fərqlənir, bəzən isə heç bir şey görünmür və əksər hallarda göstərilir " bu faylı redaktə etməyin ").

Crontab faylını yaratmaq və ya redaktə etmək üçün aşağıdakı əmri çalıştırın:

crontab-e

Default seçilən redaktoru yoxdursa, ondan istifadə etmək üçün bir default redaktoru seçmək istənir. Şəxsən mən nanodan istifadə etmək istərdim, çünki istifadə etmək kifayət qədər düz və terminaldan çalışır.

Açılan fayl bir çox məlumatı var, ancaq əsas hissə şərh hissəsinin sona çatmasından əvvəl nümunədir (şərhlər # ilə başlayan xətləri ilə ifadə edilir).

# mh dom mon dow əmri

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

Crontab faylının hər bir xəttinə uyğun 6 ədəd məlumat var:

Hər bir element üçün (əmr istisna olmaqla) bir joker karakter göstərə bilərsiniz. Aşağıdakı misalda crontab xəttinə baxın:

30 18 * * * tar -zcf /var/backups/home.tgz / home /

Yuxarıda göstərilən əmr 30 dəqiqə, 18 saat və həftənin hər hansı bir günü, ayı və günüdürsə , ev dizini / var / backups qovluğuna göndərmək üçün bir komanda çalıştırın.

Hər saatdan sonra 30 dəqiqə işləmək üçün əmr almaq üçün aşağıdakı əmri çalıştıra bilərsiniz:

30 * * * * əmri

Saat 6-da hər dəqiqə çalıştırmaq üçün bir əmr almaq üçün aşağıdakı əmri çalıştıra bilərəm:

* 18 * * * əmri

Buna görə crontab komutlarınızı qurmaq üçün diqqətli olmalısınız.

Məsələn:

* * * 1 * əmri

Yuxarıda göstərilən komanda yanvar ayının hər günün hər saatın hər dəqiqəsini keçirəcək. Şübhəsiz ki, istədiyiniz nədir.

Yanvarın 5-də saat 5-də bir komanda çalıştırmaq üçün crontab faylına aşağıdakı komanda daxil olursunuz:

0 5 1 1 * komanda

Crontab faylını necə çıxarmaq olar?

Çoğu zaman crontab faylını silmək istəməyəcəksiniz, lakin crontab faylından bəzi satırları silmək istərdiniz.

Ancaq istifadəçinin crontab faylını aradan qaldırmaq istəyirsinizsə aşağıdakı əmrləri yerinə yetirin:

crontab -r

Bunu etmək daha təhlükəsiz bir şəkildə aşağıdakı əmrləri yerinə yetirməkdir:

crontab -i

Bu sual "Siz əminəm?" Soruşur. crontab faylını çıxarmadan əvvəl.