Si ta ndryshoni skedarin e Linux Crontab për të planifikuar punë

Prezantimi

Nuk është një daemon në Linux i quajtur cron i cili përdoret për të drejtuar proceset në intervale të rregullta.

Mënyra se si e bën këtë është që të kontrolloni dosje të caktuara në sistemin tuaj për të drejtuar skriptet. Për shembull ekziston një dosje e quajtur /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly dhe / etc / cron.monthly. Ekziston edhe një skedar i quajtur / etc / crontab.

By default ju thjesht mund të vendosni scripts në dosjet përkatëse për t'i marrë ato për të drejtuar një intervale të rregullt.

Për shembull, hapni një dritare të terminalit (duke shtypur CTRL, ALT dhe T) dhe kryeni komandën e mëposhtme ls :

ls / etc / cron *

Ju do të shihni listën e programeve ose skripteve që drejtohen çdo orë, çdo ditë, javore dhe mujore.

Problemi me këto dosje është se ato janë paksa të paqarta. Për shembull, çdo ditë do të thotë se skripti do të funksionojë një herë në ditë, por nuk keni kontroll mbi kohën që skripti do të ekzekutohet gjatë asaj dite.

Kjo është ajo ku futet skedari crontab.

Duke redaktuar skedarin crontab ju mund të merrni një skript ose program për të kandiduar në datën dhe kohën e saktë që dëshironi ta bëni. Për shembull, ndoshta dëshironi të rezervoni skedarët tuaj çdo natë në orën 18:00.

Permissions

Komanda crontab kërkon që një përdorues të ketë leje për të redaktuar një skedar crontab. Në thelb janë dy skedarë që përdoren për të menaxhuar lejet crontab:

Nëse ekziston skedari /etc/cron.allow atëherë përdoruesi që dëshiron të modifikojë skedarin crontab duhet të jetë në atë skedar. Nëse skedari cron.allow nuk ekziston, por ekziston një skedar /etc/cron.deny atëherë përdoruesi nuk duhet të ekzistojë në atë skedar.

Nëse ekzistojnë dy skedarë, atëherë /etc/cron.allow anashkalon skedarin /etc/cron.deny.

Nëse as nuk ekziston skedari atëherë varet nga konfigurimi i sistemit nëse një përdorues mund të redaktojë crontab.

Përdoruesi rrënjësor mund të modifikojë gjithmonë skedarin crontab. Ju mund ta përdorni komandën su për të kaluar te përdoruesi rrënjë ose komanda sudo për të drejtuar komandën crontab.

Redaktimi i skedarit Crontab

Çdo përdorues që ka leje mund të krijojë skedarin e tyre të crontab. Komanda cron në thelb kërkon ekzistencën e dosjeve të shumëfishta crontab dhe shkon përmes të gjithë atyre.

Për të kontrolluar nëse keni një skedar crontab drejtuar komandën e mëposhtme:

crontab -l

Nëse nuk keni një skedar crontab mesazhi "no crontab për " do të shfaqet ndryshe do të shfaqet skedari juaj crontab (kjo funksionalitet ndryshon nga sistemi në sistem, nganjëherë nuk tregon aspak dhe herë të tjera tregon " mos e ndryshoni këtë skedar ").

Për të krijuar ose redaktuar një skedar crontab, ekzekutoni komandën e mëposhtme:

crontab -e

By default nëse nuk ka një editor të parazgjedhur të përzgjedhur atëherë do t'ju kërkohet të zgjidhni një editor të parazgjedhur për t'u përdorur. Personalisht më pëlqen të përdor nano pasi është mjaft e drejtë përpara për të përdorur dhe shkon nga terminali.

Dosja që hapet ka shumë informata, por pjesa kyçe është shembulli vetëm para përfundimit të seksionit të komenteve (komentet janë të shënuara me linja që fillojnë me #).

Komanda mh dom mon dow

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

Ka 6 pjesë informacioni për të përshtatur në çdo rresht të skedarit crontab:

Për çdo artikull (me përjashtim të komandës) mund të specifikoni një karakter wildcard. Shikoni shembullin e mëposhtëm crontab line:

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

Çfarë komanda e mësipërme është duke thënë është në 30 minuta, 18 orë dhe çdo ditë, muaj dhe ditë të javës të drejtuar një komandë për të zip dhe tar drejtoria e shtëpisë në dosjen / var / backups.

Për të marrë një komandë për të kandiduar në 30 minuta të kaluara çdo orë unë mund të kandidojë komandën e mëposhtme:

30 * * * * komandë

Për të marrë një komandë për të kandiduar çdo minutë pas orës 18:00, mund të komandoj si vijon:

* 18 * * * komandë

Ju duhet, pra, të jeni të kujdesshëm për ngritjen e komandave tuaja të crontab.

Për shembull:

* * * 1 * komandë

Komanda e mësipërme do të vazhdojë çdo minutë çdo orë të çdo dite të çdo jave në janar. Unë dyshoj që kjo është ajo që ju dëshironi.

Për të drejtuar një komandë në orën 5 të mëngjesit më 1 janar ju do të komandës në vijim në dosjen crontab:

0 5 1 1 * komandë

Si të hiqni një skedar Crontab

Shumica e kohës nuk do të dëshironi të hiqni skedarin crontab, por mund të dëshironi të hiqni disa rreshta nga skedari crontab.

Megjithatë, nëse dëshironi të hiqni skedarin crontab të përdoruesit tuaj, ekzekutoni komandën e mëposhtme:

crontab -r

Një mënyrë më e sigurt për ta bërë këtë është të ekzekutosh komandën e mëposhtme:

crontab -i

Kjo e shtron pyetjen "a jeni të sigurt?" para se të hiqni skedarin crontab.