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:
- /etc/cron.allow
- /etc/cron.deny
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
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:
- Minuta e ditës që komanda është për të kandiduar (m)
- Orari i ditës që komanda është për të drejtuar (h)
- Dita e muajit komanda është për të drejtuar (dom)
- Muaji i komandës është për të drejtuar (mon)
- Dita e javës komanda është për të drejtuar (dow)
- Komanda
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.