انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => انجمن عمومی => نویسنده: shirfarhad در 11 دی 1394، 05:09 ب‌ظ

عنوان: مشکل در اجرای دستورات توسط cron - (حل شد)
ارسال شده توسط: shirfarhad در 11 دی 1394، 05:09 ب‌ظ
درود

من هربار سعی کردم با استفاده از cron کارها رو زمان بندی کنم نتونستم.
جستجو کردم ولی آموزش کاملی درباره کار با cron توی انجمن نبود. ویکی اوبونتو هم که انگار کلا رو هواست و مطالبش به جای اینکه کاملتر بشن دارن کمتر میشن!!! مثلا یه آموزش لاتک و یه راهنما برای cron با توجه به لینک های توی همین انجمن انگار قبلا توی ویکی بوده که الان نیستن.

من توی زربری پای (آخرین نسخه رزبین بر مبنای جسی) وقتی مثلا میزنم

# 01 12 * * * shutdown -h now
سیستم خاموش نمیشه (با کاربری ریشه وارد میکنم)
و همین طور دستورات شروع دانلود که در اینجا اومده : http://forum.ubuntu.ir/index.php/topic,40582.0.html
-----------------------
در صورتیکه همون دستور خاموش شدن به صورت معمولی کار میکنه. خیلی توی انجمن گشتم. لطفا هرکی میدونه راهنمایی کنه.
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron
ارسال شده توسط: رسول سعیدنژاد در 11 دی 1394، 05:40 ب‌ظ
سلام. اون #‌ هم توی کرونت وجود داره؟ # به معنی کامنته. اگه توی فایل باشه، اون خط نادیده گرفته میشه.
اینم آموزش کرون توی ویکی اوبونتوی خودمون
http://web.archive.org/web/20140320122606/http://wiki.ubuntu.ir/CronHowto (http://web.archive.org/web/20140320122606/http://wiki.ubuntu.ir/CronHowto)
 ;)
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron
ارسال شده توسط: shirfarhad در 11 دی 1394، 05:44 ب‌ظ
نه اون خط رو خودم اینجا کامنت کردم.
ممنون از لطفت میرم بخونمش. شما دستورات رو توی توزیعتون با همین نحو مینویسید و اجرا میشن؟
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron
ارسال شده توسط: رسول سعیدنژاد در 11 دی 1394، 05:46 ب‌ظ
آره منم توی توزیعم همین جوری مینویسم. منتها برای shutdown توی کرون ریشه، بازم باید sudo بذاری. دلیلش رو خودمم هنوز نمی دونم. چون عجیبه. یکی دو دستور هستن که توی کرون ریشه هم باز باید sudo‌ پشتشون باشه. اگه مشکلت فقط با همین دستور شات داونه، پس دلیلش اینه. ولی اگه هرچیز دیگه ای هم که میذاری مشکل داره، پس یه جای کار میلنگه.
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron
ارسال شده توسط: shirfarhad در 11 دی 1394، 05:53 ب‌ظ
تنها این نیست کلا هیچ دستوری رو اجرا نمیکنه. چه خاموش کردن و چه اجرا آریا۲ .
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron
ارسال شده توسط: رسول سعیدنژاد در 11 دی 1394، 05:55 ب‌ظ
یه دستور بذار که هر دقیقه اجرا کنه. مثلا ls بگیره از هوم و ... بعد از ذخیره کردنش اینو بزن:
tail -f /var/log/syslogو صبر کن ببین سر هر دقیقه، کرون چه کاری انجام میده. تا بتونی مشکل رو پیدا کنی.
احتمال هم داره که کلا سرویسش اجرا نمیشه یا نشده. تا حالا رزبری نداشتم تا چک کنم. ولی روی گوشیم که کرون دارم، خودش اجرا میشه خود به خود. (معماری آرم + اوبونتو. نباید فرقی با رزبری که آرمه + دبیانه داشته باشه)
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron
ارسال شده توسط: shirfarhad در 11 دی 1394، 06:51 ب‌ظ
توی دبیان هم امتحان کردم و دستور اجرا نشد.

grep CRON /var/log/syslogخروجی به اینصورت بود :
Jan  1 18:41:01 GNU CRON[3635]: (roozbeh) CMD (/usr/bin/aria2c -v)
---------
این بار مسیر ندادم و باز هم :
grep CRON /var/log/syslogJan  1 18:40:01 GNU CRON[3572]: (roozbeh) CMD (aria2c -v)

---------

توی رزبری هم به اینصورت بود :
Jan  1 17:51:01 roozbeh CRON[2901]: (root) MAIL (mailed 1091 bytes of output but got status 0x004b from MTA#012)
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron
ارسال شده توسط: رسول سعیدنژاد در 11 دی 1394، 06:57 ب‌ظ
خروجی که بدون مشکله.
حواسم نبود اینو بگم. اینکه زدی aria2c -v، تهش هم ریداریکت کن به یه فایل تکست تا ببینی عمل میکنه یا نه.
مثلا
* * * * * aria2c -v > /home/roozbeh/logبعد ببین بعد از یک دقیقه، فایل رو میسازه توی هوم و خروجی رو داخلش مینویسه یا نه.
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron
ارسال شده توسط: shirfarhad در 11 دی 1394، 07:10 ب‌ظ
توی هر دو (رزبری و دبیان) اطلاعات توی فایل لاگ ذخیره میشن. ولی همین ها نمایش داده نمیشن چرا؟یعنی چرا اجرا نمیشن که ببینمشون؟ یا فرمان خاموش شدن اجرا نمیشه یا مثلا فلان برنامه اجرا نمیشه با کرون.
کرون هم درحال اجراست.
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron
ارسال شده توسط: رسول سعیدنژاد در 11 دی 1394، 07:52 ب‌ظ
دستوری رو که توی کرون میذاری، نشونت نمیده. مگه اینکه خروجی به محیط X بدی (با export DISPLAY=:0 مثلا) یا همین ریدایرکت کردن.
الان یعنی توی هوم یه فایل log ساخت و خروجی ورژن آریا رو توش نوشته بود؟ اگه آره پس کرون سالمه و مشکلی نداره. باید ببینی دستوراتی که میدی باید با چه روشی نوشته بشن توی کرون.
دستوری مثل آریا رو اگه هم اجرا کنه، شما نمی بینیش. مگه اینکه اول ببینی ترمینالت pts چنده. با این دستور
ttyو بعد از گرفتن آدرس، اونو بذاری جلوی دستور تا دستور رو توی ترمینالت ببینی بعد از اینکه آریا۲ اجرا شد. مثلا
00 20 * * * aria2c -v > /dev/pts/1اگه ترمینال اصلیت pts1 باشه، خروجی ورژن آریا۲ رو توی ترمینالت نشون میده. در غیر اینصورت هیچ جا نشون نمیده تا اینکه خودت مشخص کنی کجا نشون بده.
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron
ارسال شده توسط: shirfarhad در 11 دی 1394، 08:18 ب‌ظ
خدا خیرت بده. چیزای جدیدی یاد گرفتم :) من منتظر بودم بعد از اجرای فرمان اون رو توی ترمینال ببینم! نمیدونستم توی پس زمینه اجرا میشه. حالا باید ببینم چرا خاموش شدن با کرون کار نمیکنه. این قسمت که شما راهنمایی کردی مهم ترینش بود.
توی کرون تب اگه بزنم # 01 12 * * * /sbin/shutdown -h now
اونوقت سیستم خاموش میشه ولی اگه sbin/ رو نزنم کار نمیکنه. با اینکه sbin/ رو به مسیرهام اضافه کرده ام.
-----------
راستی این مورد پیدا کردن شماره tty رو از کجا فهمیدین؟ توی راهنمای کرون نبود.
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron
ارسال شده توسط: رسول سعیدنژاد در 11 دی 1394، 08:49 ب‌ظ
اون بالا دقت نکردی چی گفتم؟ نوشتم که shutdown‌ رو باید با sudo بدی
01 12 * * * sudo shutdown -h nowو گفتم که واسه خودمم عجیبه که چرا باید sudo بهش داد.  ???

اون tty هم یه مبحث جداس کلا و کاری به کرون نداره  ;)
tty محیط کامندلاین بدون X (محیط گرافیکی) هست. یعنی وقتی کلا هیچ محیط گرافیکی نداری، توی tty‌ بتونی کارات رو انجام بدی. و اون محیط ترمینالت هم جزئی از tty محسوب میشه و هر ترمینالی که باز کنی، بهش یه pts تعلق می‌گیره. بنابراین، همین جور که میشه مثلا خروجی یه دستور رو فرستاد توی یه فایل، میشه همون خروجی رو فرستاد روی یه دیوایس. که در اینجا میشه ترمینال tty. مثلا میشه خروجی یه دستور رو نوشت روی هارد (که خیلی خطرناکه)  ;D چون هاردت به فنا میره بعدش خخخ.
در هر صورت یه دستور رو که توی بش اجرا میکنی، یه سری خروجی میده که یه سریش استانداردن یه سریش اررورن و ... و میشه به جای اینکه خروجی رو توی ترمینال دید، اونو فرستاد یه جای دیگه. مثلا تو ناکجاآباد (null). به این صورت
sudo apt-get update > /dev/nullاین یعنی سیستمت آپدیت میشه ولی خروجی رو دیگه نمی بینی. میره توی ناکجاآباد  ;D
همین قضیه کلا یه مبحث کامل هست توی LPIC. ندیدی کلیپای جادی رو؟
http://forum.ubuntu.ir/index.php/topic,114612.0/topicseen.html (http://forum.ubuntu.ir/index.php/topic,114612.0/topicseen.html)
 ;)
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron
ارسال شده توسط: shirfarhad در 11 دی 1394، 10:05 ب‌ظ
توضیحاتتون بسیار خوب بود. شما درست میگید سری ویدئوهایی جادی رو دیدم. ولی این مورد pts برام تازگی داشت. باز هم متشکرم از جواب کامل و به موقعتون .  =D>
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron - (حل شد)
ارسال شده توسط: رسول سعیدنژاد در 11 دی 1394، 10:12 ب‌ظ
حالا خودمم دقیق خبر ندارم توی کلیپای جادی راجع به tty‌ حرف زد یا نه. ولی کلیت حرفم رو توی کلیپای جادی می‌شد پیدا کرد. همین قضیه‌ی خروجی استاندارد و اررور و ریدایرکت و ...  ;)
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron - (حل شد)
ارسال شده توسط: meysam1717 در 12 دی 1394، 12:53 ب‌ظ
سلام
بنده هم با کرون تب به مشکل خوردم و دستوراتم اجرا نمیشن توزیع فدورا ۲۳ دارم (نیاز دارم با این توزیع کار کنم).
قبلا تو ابونتو اجرا میشد ولی الان داخل فدورا اجرا نمیشن
محتویات فایل /etc/crontab
SHELL=/bin/bash
PATH=$PATH
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,$
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
* * * * * ls /home >> /home/walker/log.txt

عنوان: پاسخ : مشکل در اجرای دستورات توسط cron - (حل شد)
ارسال شده توسط: رسول سعیدنژاد در 12 دی 1394، 01:15 ب‌ظ
سلام
بنده هم با کرون تب به مشکل خوردم و دستوراتم اجرا نمیشن توزیع فدورا ۲۳ دارم (نیاز دارم با این توزیع کار کنم).
قبلا تو ابونتو اجرا میشد ولی الان داخل فدورا اجرا نمیشن
محتویات فایل /etc/

سلام. دستورت رو توی
crontab -eبرای یوزر و اگه نیاز به روت داره
sudo crontab -eبرای ریشه
بذار و بعد تست کن.

و مثل استارتر، موقع اجرا شدن کرون، syslog رو چک کن.
tail -f /var/log/syslog
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron - (حل شد)
ارسال شده توسط: meysam1717 در 12 دی 1394، 06:42 ب‌ظ
با crontab -e وsudo crontab -e هم تست کردم و دستورم اجرا نشد فایل syslog وجود نداره توزیع فدورا هستم
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron - (حل شد)
ارسال شده توسط: meysam1717 در 12 دی 1394، 07:05 ب‌ظ
 نمیدونم مشکل از کجا بوده ولی بعد از ریستارت کردن و همچنین پاک کردن تمام cronjob ها تونستم از طریق sudo crontab -e کارم رو انجام بدم.
فقط تو توزیع های ردهت بیس فایلی که همه چیزو لاگ کنه مثله syslog  در اوبونتو کچا قرار داره؟
عنوان: پاسخ : مشکل در اجرای دستورات توسط cron - (حل شد)
ارسال شده توسط: رسول سعیدنژاد در 12 دی 1394، 07:10 ب‌ظ
سوال جدید، تاپیک جدید  ;)