මම ක්‍රොන් රැකියාවක් සකස් කරන්නේ කෙසේද?


555

මට නිතිපතා ක්‍රියාත්මක කිරීම සඳහා කාර්යයක් උපලේඛනගත කිරීමට අවශ්‍ය වන අතර ක්‍රෝන් මෙය කළ හැකි බව අසා ඇත.

උබුන්ටු වල ක්‍රොන් රැකියා එකතු කරන්නේ කෙසේද?

Answers:


681

මෙම ෆෝල්ඩර එකක් තුළ ශෙලයක් තිර රචනය දාන්න: /etc/cron.daily, /etc/cron.hourly, /etc/cron.monthlyහෝ /etc/cron.weekly.

මේවා ඔබට ප්‍රමාණවත් නොවේ නම්, ඔබට වඩාත් නිශ්චිත කාර්යයන් එක් කළ හැකිය. උදා: මසකට දෙවරක් හෝ සෑම විනාඩි 5 කට වරක්. පර්යන්තය වෙත ගොස් ටයිප් කරන්න:

crontab -e

මෙය ඔබගේ පුද්ගලික ක්‍රොන්ටාබ් (ක්‍රෝන් වින්‍යාස ගොනුව) විවෘත කරනු ඇත. එම ගොනුවේ පළමු පේළිය ඒ සියල්ල පැහැදිලි කරයි! සෑම පේළියකම ඔබට ක්‍රියාත්මක කිරීමට එක් විධානයක් සහ එහි කාලසටහන නිර්වචනය කළ හැකි අතර, ඔබ එය ක්‍රියාත්මක වන විට ආකෘතිය තරමක් සරල ය. ව්යුහය:

minute hour day-of-month month day-of-week command

ඔබට ලැයිස්තු භාවිතා කළ හැකි සියලුම සංඛ්‍යා සඳහා, උදා: 5,34,55මිනිත්තු ක්ෂේත්‍රය යන්නෙන් අර්ථ දැක්වෙන්නේ අතීත 5, 34, සහ 55 පසුකර ධාවනය වන වේලාවයි.

ඔබට අන්තරයන් ද භාවිතා කළ හැකිය. ඒවා මේ ආකාරයට අර්ථ දක්වා ඇත : */20. මෙම උදාහරණයෙන් සෑම 20 වන දිනම අදහස් වේ, එබැවින් මිනිත්තු තීරුවේ එය සමාන වේ 0,20,40.

එබැවින් සෑම සඳුදා දිනකම සවස 5:30 ට විධානයක් ක්‍රියාත්මක කිරීමට:

30 17 * * 1 /path/to/command

හෝ සෑම විනාඩි 15 කට වරක්

*/15 * * * * /path/to/command

සතියේ දිනය 0-6 සිට 0 ඉරිදා දක්වා යන බව සලකන්න.

ඔබට මෙහි වැඩිදුර කියවිය හැකිය .


8
මේවා පද්ධතිමය වශයෙන් ඉහළ වරප්‍රසාද සහිතව ක්‍රියාත්මක වේ. ප්‍රවේශය හෝ අවසරය අවශ්‍ය නොවන්නේ නම් මම එහි කිසිවක් තබන්නේ නැත. රීතියක් ලෙස, හැකියාවන් නොමැතිව දේවල් කිරීමට උත්සාහ කරන්න. එමනිසා, මම මෙම පිළිතුරට වඩා හොඳින් කැමතියි: ubuntu.stackexchange.com/questions/2368/how-do-i-setup-cron-job/…
එච් මාර්සෙලෝ මොරාලෙස්

5
Ar මාර්සෙලෝ මොරාලෙස්, දී ඇති විධානයන් root ලෙස ක්‍රියාත්මක කරයි! ඔබ අනෙක් අතට සුඩෝ භාවිතා නොකරන්නේ නම් ඔබ පරිශීලක ක්‍රොන්ටැබ් එකක් සාදනු ඇති අතර එය නිර්මාණය කළ පරිශීලකයා ලෙස මෙය ක්‍රියාත්මක වේ!
LassePoulsen

4
* / 15 * * * * / path / to / command මට ඉතා පහසු විය! ස්තූතියි!
AO_

21
මෙම වෙනස්කම් ස්වයංක්‍රීයව ක්‍රියාත්මක වන බව සඳහන් කිරීම වටී, ඔබට කිසිවක් නැවත ආරම්භ කිරීමට / නැවත පූරණය කිරීමට අවශ්‍ය නොවේ.
මොලොම්බි

6
තවත් පහසු ඉඟියක් නම් */15 * * * * /path/to/command, @reboot /path/to/commandආරම්භයේදී යමක් ක්‍රියාත්මක කිරීම වෙනුවට ඔබට කළ හැකි බවයි.
කෙනත් වර්ඩන්

105

ඔබට ක්‍රියාත්මක කිරීමට අවශ්‍ය රැකියාව ඔබේ පරිශීලකයාට සමාන වරප්‍රසාද සහිතව ධාවනය කළ හැකි නම්, ධාවනය කිරීමෙන් ඔබට සංස්කරණය කළ හැකි පරිශීලක ක්‍රොන්ටැබ් එකක් භාවිතා කිරීමට මම නිර්දේශ කරමි EDITOR="gedit" crontab -e(එය ක්‍රොන්ටාබ් ගොනුව සංස්කරණය කිරීමට gedit භාවිතා කරයි) හෝ සරලව crontab -e(පෙරනිමි සංස්කාරකය භාවිතා කරනු ඇත) පර්යන්තයක.

ඔබට සෑම මිනිත්තු 10 කට වරක් යමක් ධාවනය කිරීමට අවශ්‍ය නම්, උදාහරණයක් ලෙස, ඔබ මේ වගේ පේළියක් එක් කරයි

*/10 * * * * /usr/bin/somedirectory/somecommand

ගොනුව සුරකින්න.

පරිශීලක crontab හි අන්තර්ගතය ඔබට දැක ගත හැකිය crontab -l.

Root ලෙස ක්‍රියාත්මක වන ක්‍රෝන් ජොබ් එකක් එක් කිරීමට, ඔබට ධාවනය කිරීමෙන් root හි crontab සංස්කරණය කළ හැකිය sudo crontab -e.

වඩාත්ම නම්‍යශීලී ක්‍රමය නම් /etc/crontabඔබට සංස්කරණය කළ හැකි පද්ධති වර්‍ග භාවිතා කිරීම මූල වරප්‍රසාද සමඟ පමණි. මෙම ගොනුවේ, පරිශීලකයා සෑම විධානයක්ම නියම කර ඇති පරිදි ක්‍රියාත්මක කළ යුතුය, එවිට ඔබට ඔබේ විධාන root ලෙස ක්‍රියාත්මක කළ හැකිය (ඔබට එම වරප්‍රසාදය අවශ්‍ය නම්) හෝ පද්ධතියේ වෙනත් ඕනෑම පරිශීලකයෙක්.

උදාහරණයක් ලෙස, ඔබට සෑම විනාඩි 10 කට වරක් root ලෙස යමක් ධාවනය කිරීමට අවශ්‍ය නම්, ඔබ මේ වගේ පේළියක් එක් කරයි

*/10 * * * * root /usr/bin/somedirectory/somecommand

(පරිශීලකයා පේළියට එකතු කිරීම සැලකිල්ලට ගන්න)

පද්ධති ක්‍රොන්ටාබ් ගොනුවේ අන්තර්ගතය ඔබට දැක ගත හැකිය cat /etc/crontab.

වැඩි විස්තර: https://help.ubuntu.com/community/CronHowto


1
මෙන්න ඔබට මිහිරි අන්තර්ක්‍රියාකාරී ක්‍රෝන් මැනිපියුලේටරයක් ​​වන අතර එය ඔබට ක්‍රොන් ටයිම් සඳහා ඉංග්‍රීසි ලබා දෙනු ඇත crontab.guru
CTS_AE

53

ඔබ එය GUI භාවිතයෙන් කිරීමට කැමති නම්, ඔබට මෘදුකාංග මධ්‍යස්ථානය වෙත ගොස් උපලේඛනගත කාර්යයන් ස්ථාපනය කළ හැකිය (හෝ ක්‍රියාත්මක කරන්න sudo apt-get install gnome-schedule). එය ක්‍රෝන් කාර්යයන් එකතු කිරීම සඳහා ප්‍රබල GUI එකක් ලබා දෙනු ඇත.

ඔබ මෙම ක්‍රමය භාවිතා කරන්නේ නම්, පෙරනිමියෙන් කාර්යයන් ක්‍රියාත්මක කරනු ලබන්නේ ඔබේම පරිශීලකයෙකු ලෙස මිස මූල ලෙස නොවේ. මෙය සාමාන්‍යයෙන් හොඳ දෙයකි.


3
පෙනෙන 16,04 සඳහා ගත නොහැකි bugs.launchpad.net/ubuntu/+source/gnome-schedule/+bug/1576060
TankorSmash

AnkTankorSmash ඔබට එය මෙතැනින්
එම්. බෙකරා

පැකේජ අවශ්‍යතා 16.04
ඔඩිසියස් ඉටාකා

26

KDE හි කාර්ය කාලසටහන ( kde-config-cron) නිර්දේශ කරමි Kde-config-cron ස්ථාපනය කරන්න. එහි කාර්ය උපලේඛන මොඩියුලයේ පද්ධති සැකසීම් වලින් එය ප්‍රවේශ කරන්න.

එය පුද්ගලික හා පද්ධති ක්‍රොන්ටාබ් යන දෙකම කළමනාකරණය කරයි, සහ කාල සීමාවන් නිර්මාණය කිරීමේ පහසුව මා බෙහෙවින් පුදුමයට පත් කළේය (පහත රූපරාමුව බලන්න). මම හිතන්නේ මෙම කොටස සැබවින්ම අවතක්සේරු කර ඇත.

රූප විස්තරය මෙහි ඇතුළත් කරන්න


11

කේඩීඊ කාර්ය උපලේඛකයා සාමාන්‍ය උබුන්ටු වල ක්‍රියා නොකරනු ඇත. එය ක්‍රියාත්මක වන්නේ කුබුන්ටු වැනි කේඩීඊ පද්ධතිවල පමණි. KDE නොවන පද්ධතිය සඳහා ඔබ gnome- කාලසටහන භාවිතා කිරීමට කැමති වනු ඇත

$ sudo apt-get install gnome-schedule

යෙදුම ඩෑෂ් හි උපලේඛනගත කාර්යයන් වේ.


එය උබුන්ටු 16.04 සඳහා හමු නොවේ
සයිඩ්බක්ආර්

කරුණාකර I can't install gnome schedule on Ubuntu 16.04@ askubuntu.com/questions/785657/… බලන්න . Download bugs.launchpad.net/ubuntu/+source/gnome-schedule/+bug/1576060/… බාගත කිරීම සඳහා පැකේජයක් තිබේ . ඉටු කරන්න$ sudo dpkg -i gnome-schedule_2.3.0-0ubuntu16.04_amd64.deb
ඇන්ටෝනියෝ

11

මට අවශ්‍ය වූයේ ක්‍රෑෂ් ජොබ් එකක් බාෂ් ස්ක්‍රිප්ට් එකක් හරහා ධාවනය කිරීමටයි, එබැවින් ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීමෙන් ක්‍රෝන් ජොබ් එකක් එකතු වේ.

ඔබ එය භාවිතා කරන විට:

crontab -e 

ඉන්පසු එය ගොනුව නිර්මාණය කරයි:

/var/spool/cron/crontabs/root

Root යනු crontab විධානය ක්‍රියාත්මක කරන පරිශීලකයාගේ නමයි. එබැවින් මේ මත පදනම්ව සහ අවම වශයෙන් 14.04 දී අපට නව ක්‍රෝන් රැකියාවක් නිර්මාණය කිරීම සඳහා පහත දැක්වෙන bash විධානයන් ක්‍රියාත්මක කළ හැකිය:

echo "30 17 * * 1 /path/to/command" > /var/spool/cron/crontabs/root

ගොනුව සඳහා නිවැරදි හිමිකම අප විසින් සැකසිය යුතුය:

chown root:root /var/spool/cron/crontabs/root

නිවැරදි අවසරයන් සකසන්න:

chmod 600 /var/spool/cron/crontabs/root

ඔබ ධාවනය crontab -eකරන විට ලැයිස්තුවේ දැනටමත් ක්‍රෝන් රැකියා තිබේ නම්, පහත දැක්වෙන විධානය භාවිතා කර ඔබට ලැයිස්තුවට එකතු විය හැකිය:

echo "30 17 * * 1 /path/to/command" >> /var/spool/cron/crontabs/root

2

test_cron.shසංකේතාත්මක සබැඳියක් භාවිතා කරමින් උබුන්ටු 18.04 හි සෑම මිනිත්තුවකම ක්‍රෝන් මඟින් ස්ක්‍රිප්ට් ධාවනය කිරීමේ උදාහරණය :

test_cron.sh ගොනුව:

#!/bin/bash
echo "System backuped" >> /media/myname/data/backup/backup_tmp.log

$USERමාර්ගවල මෙන් ඔබේ ස්ක්‍රිප්ටයේ පරිසර විචල්‍යයන් භාවිතා කිරීමට ඔබට අවශ්‍ය නම් , නිවැරදි මාර්ගය ටයිප් කිරීම වඩා හොඳය, ක්‍රියාත්මක කරන වේලාවේදී ඔබේ විචල්‍යයන් බාෂ් නොදැන සිටියි.

myname පරිශීලක නාමය (මූල කණ්ඩායමේ කොටසක්, මූල වරප්‍රසාද අවශ්‍ය බව මට විශ්වාස නැත).

ක්‍රෝන් රැකියා සැකසීමට පරිශීලකයින්ට ඉඩ දෙන්න, අවශ්‍ය නම් ගොනුව සාදනු ලැබේ:

sudo nano /etc/cron.allow

root
myname

ස්ක්‍රිප්ටයට යන මාර්ගයයි /home/myname/shell/test_cron.sh

මම අයිතිකරු වෙනස් කර එය ක්‍රියාත්මක කළ හැකි විය:

sudo chown myname /home/myname/shell/test_cron.sh
chmod +x /home/myname/shell/test_cron.sh

මම සංකේතාත්මක සබැඳියක් එක් කළෙමි:

sudo ln -s /home/myname/shell/test_cron.sh /usr/bin/test_cron

සෑම මිනිත්තුවක්ම mynameක්‍රියාත්මක කිරීම සඳහා මම නව කාර්යයක් එක් කළ බැවින් ලොග් විය test_cron.

crontab -e

*/1 * * * * test_cron

ලැයිස්තුවේ ඇති විධානය තිබේදැයි පරීක්ෂා කිරීමට:

crontab -l

*/1 * * * * test_cron

ක්‍රියාත්මක කිරීම පරීක්ෂා කිරීම සඳහා

grep -i cron /var/log/syslog

Nov 17 12:28:01 myname-ubuntu CRON[13947]: (myname) CMD (system-backup)

0

විශේෂිත පරිශීලකයා සමඟ ඔබට බහු ක්‍රෝන් රැකියා ඇති බවත් ඔවුන් එකම කාලසටහනක් බෙදා නොගන්නා බවත් සලකන විට . ඔබට සරල ලෙස ගොනුවක් සෑදිය හැකිය /etc/cron.d/ ලිපිගොනු නම myjobsපසුව ඔබේ සියලු උපලේඛන එම ගොනුවේ ලියා ඉන්පසු පහත විධානය ක්‍රියාත්මක කරන්න.

crontab -u <username> /etc/cron.d/myjobs

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.