මගේ යන්ත්‍රයේ සියලුම නියමිත ක්‍රෝන් රැකියා ලැයිස්තුවක් ලබා ගන්නේ කෙසේද?


216

මගේ සයිසැඩ්මින් මගේ යන්ත්‍රයේ ක්‍රෝන් රැකියා පොකුරක් සකසා ඇත. කුමන වේලාවට සැලසුම් කර ඇත්දැයි හරියටම දැන ගැනීමට මා කැමතිය. මම එම ලැයිස්තුව ලබා ගන්නේ කෙසේද?


3
මෙය ප්‍රශ්නයට පිළිතුර නොව හොඳම භාවිතයන් පිළිබඳ සටහනක් පමණි. එක් කළ හැකි සඳහා එක් පරිශීලක cron වලින් රැකියා ලෙස මෙම වින්යාස rootහෝ apacheවෙනත් කුමන හෝ නොව එක් කළ යුතු භාවිතා /etc/crontab(බොහෝ distros දී, වඩා හොඳ) හෝ /etc/cron.dහා /etc/cron.[timeframe].
mattdm


මම මෙය ප්‍රයෝජනවත් මට්ටමකට ස්වයංක්‍රීය කරන පිටපතක් පළ කර ඇත්තෙමි : - stackoverflow.com/questions/134906/… එය පරිපූර්ණ නොවන නමුත් බොහෝ විට 90% අවශ්‍යතා ආවරණය කරයි. එය ලිවිය යුතු දේට හොඳ උදාහරණයකි.
ඩේවිඩ් කොලියර්

Answers:


152

ඔබේ ලිනක්ස් පද්ධතිය සකසා ඇති ආකාරය අනුව, ඔබට සොයා බැලිය හැකිය:

  • /var/spool/cron/* (පරිශීලක crontabs)
  • /etc/crontab (පද්ධතිය පුරා පැතිරුණු crontab)

බොහෝ ඩිස්ට්‍රෝ වලට ඇත්තේ:

  • /etc/cron.d/* මෙම වින්‍යාසයන්ට සමාන වාක්‍ය ඛණ්ඩයක් ඇත /etc/crontab

  • /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly,/etc/cron.monthly

මේවා හුදෙක් ඩිරෙක්ටරි වන අතර ඒවායේ ඩිරෙක්ටරි නාමයට අනුව පැයකට, දිනපතා, සතිපතා හෝ මාසිකව ක්‍රියාත්මක කළ හැකි ක්‍රියාකාරීත්වයන් අඩංගු වේ.

ඊට ඉහළින්, ඔබට රැකියා (චෙක් /var/spool/at/*), ඇනක්‍රොන් ( /etc/anacrontabසහ /var/spool/anacron/*) සහ බොහෝ විට මට අමතක වී ඇති වෙනත් අය සිටිය හැකිය.


5
ස්තූතියි, මම ඔවුන්ව සොයාගත්තා /etc/cron.daily. එම dailyගොනුව ක්‍රියා කරන්නේ කෙසේද? දෛනික රැකියා ක්‍රියාත්මක වන්නේ කීයටද? මගේ යන්ත්‍රයේ ඔවුන් දහවල් පමණ දුවන බවක් පෙනේ, නමුත් එය මධ්‍යම රාත්‍රිය දක්වා වෙනස් කරන්නේ කෙසේදැයි මගේ සිසැඩ්මින්ට පැවසීමට කැමතියි.
ෆ්රෑන්ක්

6
cron.daily යනුවෙන් හැඳින්වෙන්නේ /etc/crontab, උදා: මගේ උබුන්ටු පද්ධතියේ එය: 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )එනම් උදේ 6:25.
කොව්

cron.daily මගේ RHEL5 පද්ධතියේ / etc / crontab වෙතින් කැඳවනු ලැබේ, ඔබට තවත් දත්ත ලකුණු අවශ්‍ය නම්.
jsbillings

නවතම ෆෙඩෝරා මත (සහ බොහෝ විට RHEL6 - තවම බැලුවේ නැත), cronieඩීමන් විසින් වින්‍යාසය භාවිතා කරන අය ගැන බලා ගනී /etc/anacrontab.
mattdm

සමහර විට එය /var/cronද ඇත.
CMCDragonkai

152

බොහෝ ක්‍රොන්ස් සමඟ (උදා: වික්සි-ක්‍රොන් - ඩේබියන් / උබුන්ටු පෙරනිමිය, ක්‍රෝනි - ෆෙඩෝරා පෙරනිමි, සොලාරිස් ක්‍රොන් ...) වත්මන් පරිශීලකයා සඳහා නියමිත ක්‍රෝන් රැකියා ලැයිස්තුව ඔබට ලබා ගත හැක්කේ:

$ crontab -l

හෝ වෙනත් පරිශීලකයෙකු සඳහා

# crontab -l -u juser

සියළුම පරිශීලකයින් සඳහා crontabs ලබා ගැනීම සඳහා ඔබට සියලු පරිශීලකයින්ට වඩා ලූපයක් තබා මෙම විධානය අමතන්න.

විකල්පයක් ලෙස, ඔබට ස්පූල් ලිපිගොනු සොයා බැලිය හැකිය. සාමාන්‍යයෙන්, ඒවා යටතේ සුරකිනු ලැබේ /var/spool/cron, උදා: vcron පහත නාමාවලිය සඳහා

/var/spool/cron/crontabs

සියලුම පරිශීලකයින්ගේ වින්‍යාසගත කර ඇති ක්‍රොන්ටාබ් අඩංගු වේ - මූල පරිශීලකයා හැර, පද්ධතිය පුරා පැතිරී ඇති ක්‍රොන්ටාබ් හරහා රැකියා වින්‍යාස කිරීමට හැකියාව ඇත.

/etc/crontab

Cronie සමඟ (Fedora / CentOS හි පෙරනිමිය), .dපද්ධති ක්‍රෝන් රැකියා සඳහා ශෛලීය වින්‍යාස නාමාවලියක් ද ඇත:

/etc/cron.d

(සෑම විටම මෙන්, .dනාමාවලිය විවිධ පැකේජවල කොටසක් වන වින්‍යාස ඇතුළත් කිරීම් නඩත්තු කිරීම සරල කරයි.)

පහසුව සඳහා, බොහෝ බෙදාහැරීම් වරින් වර සම්බන්ධිත / ගබඩා කළ ස්ක්‍රිප්ට් ක්‍රියාත්මක කරන නාමාවලි සපයයි, උදා:

/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly

එම ස්ක්‍රිප්ට් කාලානුරූපව ක්‍රියාත්මක කිරීම සාමාන්‍යයෙන් කළමනාකරණය run-partsකරනු ලබන්නේ පද්ධති ක්‍රොන්ටාබ්හි ඇතුළත් කිරීම් හරහා හෝ ඇනක්‍රොන් හරහා .

Systemd සමඟ (උදා: ෆෙඩෝරා, සෙන්ටෝස් 7, ...) වරින් වර රැකියා ක්‍රියාත්මක කිරීම අතිරේකව ටයිමර් ඒකක හරහා වින්‍යාසගත කළ හැකිය . සක්‍රීය පද්ධති ටයිමරයන් පහත පරිදි පෙන්විය හැකිය:

$ systemctl list-timers

මූලයට අමතරව පරිශීලකයින්ට ටයිමර් වින්‍යාස කර ඇති ස්ථානවල පරිශීලක පද්ධතිමය අවස්ථාද තිබිය හැකි බව සලකන්න. නිදසුනක් ලෙස, ෆෙඩෝරා හි, පෙරනිමියෙන්, දැනට පුරනය වී ඇති සෑම පරිශීලකයෙකු සඳහාම පරිශීලක systemd නිදසුනක් ආරම්භ කර ඇත. ඒවා හරහා හඳුනාගත හැකිය:

$ ps aux | grep 'systemd[ ]--user'

එම පරිශීලක කාලරාමු පහත පරිදි ලැයිස්තු ගත කළ හැකිය:

$ systemctl --user list-timers

list-timersවිධානය නිකුත් කිරීම සඳහා විකල්පයක් වන්නේ *.timerසුපුරුදු පද්ධතියේ ටයිමර් ඒකක ලිපිගොනු (රටාව :) සහ ඒවාට සංකේතාත්මක සම්බන්ධතා සෙවීම සහ පරිශීලක පද්ධති වින්‍යාස නාමාවලි:

$ find /usr/lib/systemd/ /etc/systemd -name '*.timer'
$ find /home '(' -path '/home/*/.local/share/systemd/user/*' \
              -o -path '/home/*/.config/systemd/*' ')' \
      -name '*.timer'  2> /dev/null

(සාමාන්‍ය සේවා ඒකක මෙන්, නිවැරදි පද්ධති වින්‍යාස නාමාවලියෙහි සංකේතාත්මක සබැඳියක් නිර්මාණය කිරීමෙන් ටයිමර් ඒකකයක් සක්‍රීය කෙරේ.)

මෙයද බලන්න:


මම පහත් කොට සැලකුවේ නැහැ. නමුත් මම උත්සාහ කළෙමි crontab -l -u root(මක්නිසාද යත් මට දැන ගැනීමට අවශ්‍ය එම ක්‍රොන්ජොබ්ස් යටතේ root), එයින් කියවෙන්නේ මට භාවිතා කිරීමට වරප්‍රසාද නොමැති බවයි -u.
ෆ්රෑන්ක්

3
එවිට ඔබට එය ප්‍රමාණවත් වරප්‍රසාද සහිතව ඇමතිය යුතුය - එනම් rootපරිශීලකයා ලෙස .
maxschlepzig

3
තවමත් සම්පුර්ණ නැත - / etc / crontab වෙතින් කැඳවන ලද උපකාරක වැඩසටහනක් නොමැතිව /etc/cron.d සහ /etc/cron.αdaily,hourly,monthly, weekly from වෙතින් ක්‍රෝන් ධාවනය වන සමහර සංස්කරණ.
mattdm

2
xmaxschlepzig - නමුත් සෑම විටම නොවේ. ප්‍රශ්නය වන්නේ “ සියලු ක්‍රෝන් රැකියා ලැයිස්තුවක් ලබා ගන්නේ කෙසේද ” යන්නයි. "හොඳයි, මෙන්න ඒවායින් සමහරක්" යන පිළිතුර පිළිතුර නොවේ.
mattdm

1
xmaxschlepzig - cronie, ෆෙඩෝරා සහ RHEL6 හි නැව්ගත කර ඇති පරිදි, එහි සිටින අය වෙත යොමු /etc/crontabනොවී ඒ වෙනුවට භාවිතා කරන්න /etc/anacrontab. ඕනෑම වින්‍යාස ගොනුවක මේවා සඳහන් නොකරන සත්‍ය ක්‍රියාත්මක කිරීම් පිළිබඳව මා වරදවා වටහා ගත හැකිය. (නමුත් පසුව, මම පහත් කොට සැලකුවේ නැත .... මම කියමි.)
mattdm

5

දී ඇති පරිශීලකයා සඳහා සියලු ක්‍රොන් ලැයිස්තුගත කිරීම.

crontab -u username -l;

සියලුම පරිශීලකයින් සඳහා සියලුම ක්‍රොන් ලැයිස්තුගත කිරීම

එය සුපිරි පරිශීලකයෙකු ලෙස ක්‍රියාත්මක කරන්න

#!/bin/bash
#List all cron jobs for all users
for user in `cat /etc/passwd | cut -d":" -f1`;
do 
crontab -l -u $user;
done

1
OP සියළුම ක්‍රෝන් රැකියා ලැයිස්තුවක් ඉල්ලා සිටී .
ඩ්‍රව් ස්ලෝන්

1
/Etc/cron.d/ රැකියා නොපෙන්වන කිසියම් හේතුවක් නිසා.
ජම්ෂිඩ්

ඒක වැඩ කරන්නේ නෑ. "www-data සඳහා crontab නැත". නමුත් පරිශීලක නාමය www-data පවතී.
mishanon
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.