“(CRON) තොරතුරු (MTA ස්ථාපනය කර නැත, ප්‍රතිදානය ඉවතලයි)” syslog හි දෝෂයකි


215

මා සතුව උබුන්ටු 12.04.1 එල්ටීඑස් හි සේවාදායක ගණනාවක් තිබේ.

මම කිසිදු ක්‍රෝන් ජොබ් එකක් එකතු කර හෝ එම සර්වරයන්හි මගේ ක්‍රොන්ටාබ් සංස්කරණය කර නැත, කෙසේ වෙතත්, සෑම යන්ත්‍රයක් සඳහාම එකම වේලාවකදී, මට 75% සීපීයූ ස්පයික් සහ ස්පයික් අවස්ථාවේ මගේ සයිස්ලොග් හි පහත තොරතුරු ලබා ගත හැකිය:

CRON[8380]: (CRON) info (No MTA installed, discarding output)

මම මොනෝ-සම්පුර්ණ ස්ථාපනය කර ඇති අතර සේවා තොග වෙබ් සේවාදායකයක් ධාවනය කරමි.

මෙය සිදුවීම නැවැත්වීමට මට ඇති හොඳම ක්‍රමය කුමක්ද? CPU ස්පයික් ඉවත් කිරීමට මම කැමතියි.


සෑම දිනකම 6:25 ට? ඒවා /etc/cron.daily/ වෙතින් පිටපත් වේ. මට ඇත්තේ තැපැල් යැවීමට උත්සාහ කිරීම පමණි: ජනප්‍රියත්වය-තරගය. ඔබගේ ස්ක්‍රිප්ට් දෙස බලා තැපැල් යැවීමට උත්සාහ කරන්නේ කුමන පිටපතද? එය පටු කළ යුතුය. ක්‍රියාත්මක කිරීම වැළැක්වීම සඳහා 'chmod 0644 /etc/cron.daily/script-name'.

Answers:


188

පරිශීලකයාට දැනුම්දීම් යැවීම සඳහා ලිනක්ස් තැපැල් භාවිතා කරයි. බොහෝ ලිනක්ස් බෙදාහැරීම් වල MTA (තැපැල් හුවමාරු නියෝජිත) ඇතුළු තැපැල් සේවාවක් ස්ථාපනය කර ඇත. උබුන්ටු එසේ නොවේ.

මෙම ගැටළුව විසඳීම සඳහා ඔබට තැපැල් සේවාවක් ස්ථාපනය කළ හැකිය.

sudo apt-get install postfix

නැතහොත් ඔබට එය නොසලකා හැරිය හැකිය. පණිවුඩ යැවීමට ක්‍රොන්ට ඇති නොහැකියාවට CPU ස්පයික් සමඟ කිසිදු සම්බන්ධයක් ඇතැයි මම නොසිතමි (එය ක්‍රෝන් ක්‍රියාත්මක වන යටින් පවතින රැකියාව සමඟ සම්බන්ධ වේ). MTA එකක් ස්ථාපනය කර පණිවිඩ හරහා කියවීම ආරක්ෂිත විය හැකිය ( muttහොඳ පද්ධති තැපැල් කියවනයකි).


5
Postfix ස්ථාපනය කිරීම හොඳ දෙයක්ද? භාවිතා කිරීමට පහසුම MTA කුමක්ද?
එන්ඩොලිත්

2
postfix යනු ලිනක්ස් සඳහා වැඩිපුරම භාවිතා වන තැපැල් සේවාදායකයයි, එයට ඇලී සිටින්න
Rápli András

6
ස්ථාපන ක්‍රියාපටිපාටිය අතරතුර ක්‍රෝන් සමඟ භාවිතා කිරීම සඳහා (එනම් ඔබට ඇත්ත වශයෙන්ම පිටතින් විද්‍යුත් තැපෑලක් යැවීමට අවශ්‍ය නැතිනම්) දේශීය භාවිතය සඳහා පමණක් වින්‍යාස කිරීමට පිළිතුරු දිය යුතු බව පෙන්වා දීම වටී.
ස්ටෙෆන්

තැපැල් පිරික්සීමට වඩා හොඳ ක්‍රමයක් ගොඩනඟා ඇත්නම්, තැපැල් පරීක්ෂා කිරීමට මා දන්නා එකම ක්‍රමය (ඩෙබියන්) mailවිසින් සපයනු ලැබේ ද mailutils?
ThorSummoner

87

මෙය සිදු වන්නේ ඔබේ ක්‍රෝන් රැකියා මඟින් ප්‍රතිදානය නිපදවන අතර පසුව ක්‍රෝන් ඩීමන් එම ප්‍රතිදානය ඔබට විද්‍යුත් තැපෑලෙන් යැවීමට උත්සාහ කරයි (එනම් මූල). ඔබට එම ප්‍රතිදානය අවශ්‍ය නොවේ නම්, මෙය විසඳීමට ඇති පහසුම ක්‍රමය වන්නේ එය ක්‍රොන්ටාබ්හි ඉවතලෑමයි:

sudo crontab -e

සහ >/dev/null 2>&1සෑම රැකියාවකටම එකතු කරන්න :

* * * * * yourCommand >/dev/null 2>&1

12
මෙම ප්‍රවේශයේ ඇති ගැටළුව නම් එය ඉහළ CPU භාවිතය පැහැදිලි නොකිරීමයි. ක්‍රොන් පැහැදිලිවම සන්නිවේදනය කිරීමට උත්සාහ කරන අතර මෙය අත්‍යවශ්‍යයෙන්ම ප්‍රතිදානය නොසලකා හැරීමකි. ප්‍රයෝජනවත් නිදොස් කිරීමේ තොරතුරු තිබේ නම්, ප්‍රතිදානය ඉවතලෑමට වඩා එය හැසිරවීමට මම වැඩි කැමැත්තක් දක්වන්නෙමි.
ඔලි

1
ඔලී, මෙය පැරණි ප්‍රශ්නයක් වුවද, මම එකම නිශ්චිත ගැටලුවකට මුහුණ දෙමි, නමුත් එය රාස්ප්බෙරි පීඅයි මත ය. මම No MTA installed, discarding outputලොගයේ පණිවිඩ පොකුරක් දකින අතර මගේ වැඩසටහන අවසානයේදී එය තනිවම ක්‍රියාත්මක වීම නවත්වයි. මම විශ්වාස කරන්නේ එය CPU ස්පයික් නිසා බවයි. මෙම ප්‍රශ්නය සඳහා පළ කර ඇති සියලුම පිළිතුරු එය නොසලකා හරින බවක් පෙනේ.
ThN

6
ප්‍රතිදානය තබා ගැනීම සඳහා, විධානය ස්ක්‍රිප්ට් එකක තබන්න, සහ පයිප්ප stdout සහ stderr වෙත logger. උදාහරණයක් ලෙස , yourCommand >/dev/null 2>&1 | logger -t mycmd. මෙමඟින් ප්‍රතිදානය සුරක්ෂිතව තබා ගැනීම සඳහා සයිස්ලොග් තුළ තබනු ඇති අතර එම්ටීඒ පැමිණිලි නතර කරනු ඇත.
CivMeierFan

60

මගේ නඩුවේදී, පණිවිඩය බැෂ් ස්ක්‍රිප්ටයේ අවසර ගැටලුවක ඉඟි කර ඇති නමුත් මම එම්ටීඒ ස්ථාපනය කරන තුරු මට එය නොපෙනුණි.

යෝජනා කළ පරිදි මම දිව්වා:

sudo aptitude install postfix

මම "දේශීය" තෝරාගත්තේ සැකසීමේදී සහ ක්‍රෝන් කාර්යය නැවත ක්‍රියාත්මක කිරීමෙන් පසුව ය:

sudo tail -f /var/mail/<user>

මගේ නඩුවේ මම ආදේශ කළා

<user>

"root" සමඟ.

අවසර වලට අදාළ දෝෂ ප්‍රතිදානය මට පසුව දැකගත හැකි විය.


4
කාර්යයේ දෝෂ දැකීමට තැපැල් පෙට්ටිය පරීක්ෂා කරන්නේ කෙසේද යන්න පිළිබඳ අමතර අදහස් දැක්වීමට ස්තූතියි!
ස්ටුවර්ට් ඇලන්

40

කලින් පිළිතුරක සඳහන් කළ පරිදි, මෙය සිදු වන්නේ ඔබේ ක්‍රෝන් රැකියා ප්‍රතිදානය නිපදවන නිසා වන අතර පසුව ක්‍රෝන් ඩීමන් එම ප්‍රතිදානය ඔබට විද්‍යුත් තැපැල් කිරීමට උත්සාහ කරයි. ඔබට MTA එකක් ස්ථාපනය කිරීමට අවශ්‍ය නැතිනම් (හෝ නොහැකි), නමුත් ඔබට ප්‍රතිදානය දැකීමට අවශ්‍ය නම්, ඔබට ක්‍රෝන් කාර්යයේ ප්‍රතිදානය ලොග් ගොනුවකට හරවා යැවිය හැකිය. සමඟ ඔබේ crontab ගොනුව සංස්කරණය කරන්න

crontab -e

( sudoගැටළුව root හි crontab සමඟ තිබේ නම් භාවිතා කරන්න) සහ සෑම විධානයකටම පසුව එකතු කරන්න ,>> /some/log/file 2>&1

0 3 * * * cmd   >> / some / log / file 2> & 1

පේළියක බහුවිධ විධාන තිබේ නම්, වෙන් කොට ;,  &&  හෝ ||, ඔබ එක් එක් විධානය සඳහා ඉහත සඳහන් කළ යුතුය, මේ ආකාරයට:

0 3 * * * cmd 1   >> / some / log / file 2> & 1;  cmd 2   >> / some / log / file 2> & 1

හෝ මේ ආකාරයට කණ්ඩායම් කරන්න:

0 3 * * * ( cmd 1 ;   cmd 2 )   >> / some / log / file 2> & 1

ඔබට stdout නොසලකා හැර stderr පමණක් අල්ලා ගැනීමට අවශ්‍ය නම්, ඒ වෙනුවට භාවිතා කරන්න. ලොග් ගොනුව ඔබට අවශ්‍ය ඕනෑම තැනක තබන්න - ඔබේ නිවාස නාමාවලිය , හෝ ඔබට එය තබා ගැනීමට අවශ්‍ය නොවන බව ඔබට විශ්වාස නම්.> /dev/null 2>> /some/log/file/var/log/tmp

කාර්යය ක්‍රියාත්මක වූ පසු ලොග් ගොනුව දෙස බලන්න.


32

Crontab හි මෙය පළමු පේළිය ලෙස එක් කරන්න:

MAILTO=""

මෙමඟින් ක්‍රොන් විද්‍යුත් තැපෑලක් යැවීමට උත්සාහ කිරීම වලක්වනු ඇත.


5
කිසිදු අදහස් දැක්වීමක් නොකරන්න ( #) පසුව MAILTO=""හෝ එය ක්‍රියා නොකරනු ඇත
එස්බීඑෆ්

24

ඔබට MTA එකක් ස්ථාපනය කිරීමට අවශ්‍ය නැතිනම් (දැනට මට අවශ්‍යතාවයක් නොමැති) ඔබට ක්‍රෝන් කාර්යයේ ප්‍රති results ල ලොග් ගොනුවකට සම්බන්ධ කළ හැකිය.

sudo crontab -e

එවිට ඔබේ ක්‍රෝන් රැකියාව සමඟ මේ වගේ වනු ඇත.

0 3 * * * /cmd/to/run >> /var/log/somelogfile.log

එවිට ඔබට ලොගය වලිගය කර සිදු වූ දේ දැක ගත හැකිය

sudo tail -f -n 50 /var/log/somelogfile.log

සිස්ලොග් හි එම පණිවිඩය දකින ඕනෑම සේවාදායකයක මා කරමින් සිටින්නේ මෙයයි


මම මෙය සිදු කර ඇත, නමුත් ගොනුවට කිසිදු ලොග් වීමක් එකතු නොවේ.
pir

ක්‍රෝන් කාර්යය ක්‍රියාත්මක වන බව ඔබට විශ්වාසද?
ඇන්ඩ rew මැක්නොටන්

ඔව්, පද්ධති ලොගය පෙන්නුම් කරන්නේ එය ආරම්භ කර ඇති බවයි.
pir

3
ගොනුවට stderr කිරීමට ප්‍රතිදානය ග්‍රහණය කර ගැනීමට ඔබට පේළියේ අවසානයේ '2> & 1' අවශ්‍ය වේ.
මැට්ස්මිත්

20

මෙය පැරණි ප්‍රශ්නයක් වන නමුත් සමහර අවස්ථාවල ප්‍රයෝජනවත් වන අමතර පිළිතුරක් තිබේ.

ඔබේ ක්‍රෝන් විධානයේ ප්‍රතිදානය පයිප් කරන්න, loggerඑවිට ඒවා සිස්ලොග් තුළ අවසන් වේ.

පෝස්ට්ෆික්ස් ස්ථාපනය කිරීමට වඩා එය තරමක් පහසු වන අතර, එය ඔබගේ අනෙක් ල .ු-සටහන් සමඟ මෙම ප්‍රතිදානය සයිස්ලොග් තුළට දමයි. මෙම විධානය මඟින් stdout සහ stderr ග්‍රහණය කරගනු ඇත, එවිට ඔබට No MTA installedපණිවිඩය නොපෙනෙන අතර ඔබේ සියලු ප්‍රතිදානය සයිස්ලොග් තුළ ඔබට පෙනෙනු ඇත .

උදාහරණ ක්‍රෝන් ප්‍රවේශය:

0 3 * * * (cmd1;  cmd2) 2>&1 | logger -t mycmd

ඔබේ ටැගය සමඟ ලොග් බැලීමට ඔබට මෙය mycmdභාවිතා කළ හැකිය:

grep 'mycmd' /var/log/syslog

පයිප්ප ක්‍රෝන් රැකියා වල වැඩ කරනවාද?
CivMeierFan

මෙය මට හොඳින් ක්‍රියාත්මක වේ. ලොග් හරහා ලබා ගත හැකිය journalctl.
පවෙල් ප්‍රිෂෙපා

10

/dev/null 2>&1ක්‍රොන් රැකියා විධානයට එකතු කිරීමේ එක් අතුරු effect ලයක් නම්, එය දෙකම ප්‍රතික්ෂේප කරනු ඇති STDERRඅතර STDOUT(සම්මත දෝෂය මෙන්ම ප්‍රතිදානය). ඔබට ක්‍රෝන් වෙතින් ඊමේල් අවශ්‍ය නොවන්නේ නම් මෙය හොඳින් ක්‍රියාත්මක වේ. නමුත් ඔබේ දෝෂ ඔබට විද්‍යුත් තැපැල් කිරීමට අවශ්‍ය නම් >/dev/nullඒ වෙනුවට භාවිතා කරන්න. වැඩි විස්තර සඳහා මෙම බ්ලොග් සටහන කියවන්න .

දෝෂ සහිත ඊමේල් යැවීමට ඔබට තවමත් MTA (තැපැල් හුවමාරු නියෝජිතයා) ස්ථාපනය කිරීමට අවශ්‍ය වනු ඇත. Postfix සමඟ ස්ථාපනය කිරීමට තරම් සරල ය:sudo apt-get install postfix


මා තේරුම් ගත් පරිදි '> / dev / null' ඔවුන් පමණක් යවනු ඇති අතර, '> / dev / null 2> & 1' මඟින් සියලු දෝෂ ඉවත් කරනු ලැබේ ද? ලොග් දෝෂ ඇති නමුත් තැපැල් නොමැති විට මා භාවිතා කළ යුත්තේ කුමක්ද? මට දැන් තැපැල් ලැබෙන්නේ නැත (මට අවශ්‍ය පරිදි) නමුත් කැත 'එම්ටීඒ නැත ...'
පිට්

2
afaik, ප්‍රතිදානය ඊමේල් වෙත යැවීම හැර වෙනත් ක්‍රමයක් ලොග් කිරීමට වෙනත් ක්‍රමයක් නොමැත. ඔබට කළ හැකි ආසන්නතම දෙය නම් දේශීය තැපැල් බෙදා හැරීම සඳහා පෝස්ට්ෆික්ස් සැකසීමයි (ඔබ "sudo apt-get install postfix" ධාවනය කරන්නේ නම් එය ඔබට දේශීය බෙදාහැරීමක් සැකසීමට අවශ්‍ය දැයි විමසනු ඇත. මෙය මුලින් වේදනාවක් සේ පෙනුනද එය සැබවින්ම ක්‍රියාත්මක වේ වඩා හොඳය. මම ssh හරහා ලොග් වූ සෑම විටම, පෙර රැකියාවක් අසමත් වී ඇත්නම් යන්ත්‍රයේ නව විද්‍යුත් තැපෑලක් මට පෙනේ. ලොගය පරීක්ෂා කිරීමට වඩා පහසු බව මට පෙනේ
paneer_tikka

2
  1. මුලදී, ස්ථාපනය කරන්න postfix, එමඟින් ගැටළුව විසඳා ගත හැකිය

    sudo apt-get install postfix
    
  2. උබුන්ටු නම්, ඔබට crontabගොනුව සංස්කරණය කළ හැකිය

    sudo vim /etc/crontab
    
  3. අවධානය , පළමු ගොනුවේ කිසිදු කේතයක් නොව ඉහළ ගොනුව සංස්කරණය කර ඇතුල් කරන්න

    MAILTO=root // current system user
    
  4. cronකිසියම් කාර්යයක් ඉටු කරන විට , ඔබට විද්‍යුත් තැපෑලක් ලැබෙනු ඇත

    mail
    

1
ඔබේ පිළිතුර හොඳ බව පෙනේ, නමුත් මට සියලු උපදෙස් තේරුම් ගැනීමට නොහැකි විය. සමහර විට ඔබට එය වැඩි දියුණු කළ හැකිය.
zx485

1

MAILTO=””ඔබේ crontabගොනුවේ ආරම්භයේදීම ඔබට විචල්යය සැකසිය හැකිය . මෙය විද්‍යුත් තැපැල් ඇඟවීම් ද අක්‍රීය කරනු ඇත. ඔබේ ක්‍රෝන් රැකියා සංස්කරණය කරන්න / විවෘත කරන්න:

$ crontab -e

ගොනුවේ ඉහළින්, ඇතුළත් කරන්න:

MAILTO=""

https://www.cyberciti.biz/faq/disable-the-mail-alert-by-crontab-command/


1

Kitematic Docker මෙවලම් භාවිතා කිරීමෙන් මට මෙම ගැටළුව ඇතිවිය .
Magento කන්ටේනරය වෙත ගොස් ක්ලික් කරන්න exe.

ඉන්පසු දුවන්න

apt-get update

මෙය ඔබ චාලක මත මැජෙන්ටෝ ධාවනය කිරීමට උත්සාහ කරන්නේ නම් ය. ලොගය අථත්ය පරිගණකයේ මෙම දෝෂය පෙන්වනු ඇත:

යාවත්කාලීන කිරීම අවශ්‍යයි.

කණගාටුයි, මෙය ඔබට අහිමි වූවා නම්, නමුත් එය ක්‍රියාත්මක වන්නේ එලෙසිනි. ඔබ දිගින් දිගටම අතරමං වේ, නමුත් ඒ ගැන කියවා බලන්න, එවිට කෑලි එක් දිනක් එකට එකතු වේ. ඉක්මන් නොවන්න.

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.