log cron / crontab کجاست؟


به جواب پذیرفته شده بروید




می خواهم تأیید کنم که کار من در زمان اجرا است و در چه زمانی است. من معتقدم که یک کار برای sudo crontab -e مشاغل من وجود دارد ، اما کجا؟

من در گوگل جستجو کردم و توصیه هایی برای جستجوی /var/log آن یافتم (که در آن من چیزی با "cron" به نام خود نمی بینم) و پرونده ای را /etc/syslog.conf که من هم ندارم ویرایش کنم.


776









10 :تعداد پاسخها


در یک نصب پیش فرض ، کارهای cron به سیستم وارد می شوند

 /var/log/syslog
 

می توانید فقط با کار کردن در آن پرونده ، کارهایی را مشاهده کنید

  grep CRON /var/log/syslog
 

اگر چیزی را مجدداً تنظیم نکرده باشید ، ورودی ها در آنجا قرار می گیرند.


923



می توانید یک پرونده cron.log ایجاد کنید تا فقط ورودی های CRON را در syslog نشان دهد. توجه داشته باشید که اگر دستورالعمل های زیر را دنبال کنید ، کارهای CRON همچنان در syslog نشان داده می شوند.

پرونده را باز کنید

 /etc/rsyslog.d/50-default.conf
 

خطی را که با شروع شروع می شود پیدا کنید:

 #cron.*
 

آن خط را لغو کنید ، پرونده را ذخیره کنید و rsyslog را مجدداً راه اندازی کنید:

 sudo service rsyslog restart
 

اکنون باید یک پرونده cron log را در اینجا مشاهده کنید:

 /var/log/cron.log
 

اکنون فعالیت Cron به این پرونده وارد خواهد شد (علاوه بر syslog).

توجه داشته باشید که در cron.log مطالبی را مشاهده خواهید کرد که وقتی cron اسکریپت ها را در /etc/cron.hourly ، cron.d روز و غیره اجرا می کند - مثلاً چیزی مانند:

 Apr 12 14:17:01 cd CRON[14368]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
 

با این حال ، اطلاعات بیشتری در مورد آنچه اسکریپت ها واقعاً درون /etc/cron.daily یا /etc/cron.hourly اجرا شده اند نخواهید دید ، مگر اینکه آن اسکریپت ها خروجی را مستقیماً به cron.log (یا شاید برای برخی از پرونده های ورود دیگر) هدایت کنند.

اگر می خواهید تأیید کنید که crontab در حال اجرا است و نیازی به جستجوی آن در cron.log یا syslog نیستید ، یک crontab ایجاد کنید که خروجی را به یک پرونده ورود به سیستم تغییر مسیر دهد - چیزی مانند:

 01 14 * * * /home/joe/myscript >> /home/log/myscript.log 2>&1
 

با این کار همه خروجی ها و خطاهایی که ممکن است توسط اسکریپتی اجرا شده به پرونده ورود به سیستم مشخص شده تغییر مسیر دهند.


244



در بعضی موارد ، نظارت مداوم بر آن می تواند مفید باشد:

 tail -f /var/log/syslog | grep CRON
 

82



شما همچنین می توانید برای خواندن بهتر ، خروجی افراد متفرقه را به سیاهههای مربوط به خود هدایت کنید ، فقط باید خروجی تاریخ را در جایی اضافه کنید.

  0 15 * * *    /home/andrew/daily-backup.sh >> /var/log/daily-backup.log 2>&1
 

38



اگر systemd بر روی سیستم خود نصب کرده اید ، می توانید با استفاده از journalctl دستور ، گزارش کار cron را نمایش دهید .

به عنوان مثال ، در اوبونتو 17.10 من:

 journalctl -u cron.service
 

13



این یک سؤال بسیار قدیمی است ، اما هیچ یک از این پاسخ ها رضایت بخش به نظر نمی رسد.

ابتدا کاری را انجام دهید که هر دقیقه cron خود را اجرا کنید ، سپس با استفاده از تست ، cron را به عنوان غیر Daemon اجرا کنید (به طور موقت فقط هر تاجی را که احتمالاً از قبل شروع شده است بکشید):

crond -nx test

و گزارش مربوط به اجرای برنامه خود را که در ترمینال شما جاری است مشاهده کنید.


9



به /var/log/syslog طور پیش فرض است.

اما می توان آن را تنظیم کرد تا یک cron.log جداگانه ایجاد شود ، که مفیدتر است.

این پرسش و پاسخ فرایند را شرح می دهد:

16.04: چگونه می توانم cron.log را ایجاد کنم و آن را در زمان واقعی نظارت کنم؟

همچنین در این پاسخ دستورالعمل های ایجاد یک wcron فرمان که نمایشگر آن در زمان واقعی است ، قرار دارد. بعلاوه ، به پاسخ دیگری پیوند می زند ،

چگونه سطح ورود به سیستم cron را تغییر دهیم؟

که نشان می دهد چگونه سطح ورود به سیستم را تغییر دهید و فقط شامل شروع کار باشد - سطح 15 خطاها و زمان پایان را نیز نشان می دهد.


8



Fedoar 29 و RHEL 7

 journalctl -t CROND
 

از journalctl دفترچه راهنما:

    -t, --identifier=SYSLOG_IDENTIFIER|PATTERN
       Show messages for the specified syslog identifier SYSLOG_IDENTIFIER, or for any of the messages with a "SYSLOG_IDENTIFIER" matched by PATTERN.

       This parameter can be specified multiple times.
 

5



می توانید خروجی cron را به یک پرونده tmp تغییر دهید

مانند: 00 11 07 * * / bin / bash /home/ubuntu/command.sh> / tmp / dal 2> & 1

خطا و خروجی عادی ، هر دو به همان پرونده هدایت می شوند


3



همانطور که قبلاً ذکر شد ، مشاغل cron به سیستم وارد می شوند /var/log/syslog

شما می توانید syslog را لوله کرده و از سیاهههای مربوط به CRON فیلتر کنید ، مانند این

 less /var/log/syslog | grep CRON 
 

مانند این می توانید از طریق پرونده های crontab خود جستجو کنید

 less /var/log/syslog | grep CRON | grep <search-keyword-comes-here>
 

مانند این می توانید از طریق پرونده های تاریخچه crontab که در پرونده های gz ذخیره شده اند ، جستجو کنید

 less /var/log/syslog.2.gz | grep CRON | grep <search-keyword-comes-here>
 

داشتن مکانیزم ورود به سیستم همیشه خوب است ، می توانید به سرعت ELK را برای سرورهای خود تنظیم کنید ، همچنین می توانید با logz آزمایش کنید .


2



انتشارات مرتبط


دایرکتوری ریشه سیستم فایل اوبونتو در سیستم فرعی ویندوز برای لینوکس و برعکس کجاست؟

crontab کاربر کجا ذخیره می شود؟

چرا یک ترمینال مجازی "مجازی" است ، و ترمینال "واقعی" چیست / چرا / کجاست؟

پوشه .Trash کجاست؟

پرونده پیکربندی X.org کجاست؟ چگونه می توانم X را در اینجا پیکربندی کنم؟

دکمه تعلیق / خواب زمستانی در GNOME Shell کجاست؟

پرونده های اتصال و اتصالات OpenVPN کجا هستند؟

گزارش خاموش کردن کجاست؟

تاریخچه bash برای کاربر root ذخیره شده است؟

گزینه ممتاز روی CD زنده 64 بیتی اوبونتو کجاست؟

[cron] سوال برچسب


چگونه می توانم با استفاده از خط فرمان ، کاربر جدیدی را به عنوان sudoer اضافه کنم؟

چگونه سرویس ها را فعال یا غیرفعال کنیم؟

چگونه می توان نسخه های قدیمی هسته را پاک کردم تا منوی بوت را تمیز کنم؟

چگونه کاربر موجود را به یک گروه موجود اضافه کنیم؟

چگونه روند کار را بعد از پایان جلسه ssh ادامه دهیم؟

چگونه می توانم nodeJS خود را به آخرین نسخه بروزرسانی کنم؟

چگونه می توانم دمای CPU را بدست آورم؟

تفاوت بین apt-get چیست؟

خطای Apache "نمی توان با اطمینان نام دامنه کاملاً واجد شرایط سرور را تعیین کرد"

چگونه می توان از یک نسخه قدیمی پشتیبانی نشده نرم افزار نصب یا به روز کرد؟