انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: shirfarhad در 11 دی 1394، 05:09 بظ
-
درود
من هربار سعی کردم با استفاده از cron کارها رو زمان بندی کنم نتونستم.
جستجو کردم ولی آموزش کاملی درباره کار با cron توی انجمن نبود. ویکی اوبونتو هم که انگار کلا رو هواست و مطالبش به جای اینکه کاملتر بشن دارن کمتر میشن!!! مثلا یه آموزش لاتک و یه راهنما برای cron با توجه به لینک های توی همین انجمن انگار قبلا توی ویکی بوده که الان نیستن.
من توی زربری پای (آخرین نسخه رزبین بر مبنای جسی) وقتی مثلا میزنم
# 01 12 * * * shutdown -h now
سیستم خاموش نمیشه (با کاربری ریشه وارد میکنم)
و همین طور دستورات شروع دانلود که در اینجا اومده : http://forum.ubuntu.ir/index.php/topic,40582.0.html
-----------------------
در صورتیکه همون دستور خاموش شدن به صورت معمولی کار میکنه. خیلی توی انجمن گشتم. لطفا هرکی میدونه راهنمایی کنه.
-
سلام. اون # هم توی کرونت وجود داره؟ # به معنی کامنته. اگه توی فایل باشه، اون خط نادیده گرفته میشه.
اینم آموزش کرون توی ویکی اوبونتوی خودمون
http://web.archive.org/web/20140320122606/http://wiki.ubuntu.ir/CronHowto (http://web.archive.org/web/20140320122606/http://wiki.ubuntu.ir/CronHowto)
;)
-
نه اون خط رو خودم اینجا کامنت کردم.
ممنون از لطفت میرم بخونمش. شما دستورات رو توی توزیعتون با همین نحو مینویسید و اجرا میشن؟
-
آره منم توی توزیعم همین جوری مینویسم. منتها برای shutdown توی کرون ریشه، بازم باید sudo بذاری. دلیلش رو خودمم هنوز نمی دونم. چون عجیبه. یکی دو دستور هستن که توی کرون ریشه هم باز باید sudo پشتشون باشه. اگه مشکلت فقط با همین دستور شات داونه، پس دلیلش اینه. ولی اگه هرچیز دیگه ای هم که میذاری مشکل داره، پس یه جای کار میلنگه.
-
تنها این نیست کلا هیچ دستوری رو اجرا نمیکنه. چه خاموش کردن و چه اجرا آریا۲ .
-
یه دستور بذار که هر دقیقه اجرا کنه. مثلا ls بگیره از هوم و ... بعد از ذخیره کردنش اینو بزن:
tail -f /var/log/syslog
و صبر کن ببین سر هر دقیقه، کرون چه کاری انجام میده. تا بتونی مشکل رو پیدا کنی.
احتمال هم داره که کلا سرویسش اجرا نمیشه یا نشده. تا حالا رزبری نداشتم تا چک کنم. ولی روی گوشیم که کرون دارم، خودش اجرا میشه خود به خود. (معماری آرم + اوبونتو. نباید فرقی با رزبری که آرمه + دبیانه داشته باشه)
-
توی دبیان هم امتحان کردم و دستور اجرا نشد.
grep CRON /var/log/syslog
خروجی به اینصورت بود :
Jan 1 18:41:01 GNU CRON[3635]: (roozbeh) CMD (/usr/bin/aria2c -v)
---------
این بار مسیر ندادم و باز هم :
grep CRON /var/log/syslog
Jan 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)
-
خروجی که بدون مشکله.
حواسم نبود اینو بگم. اینکه زدی aria2c -v، تهش هم ریداریکت کن به یه فایل تکست تا ببینی عمل میکنه یا نه.
مثلا
* * * * * aria2c -v > /home/roozbeh/log
بعد ببین بعد از یک دقیقه، فایل رو میسازه توی هوم و خروجی رو داخلش مینویسه یا نه.
-
توی هر دو (رزبری و دبیان) اطلاعات توی فایل لاگ ذخیره میشن. ولی همین ها نمایش داده نمیشن چرا؟یعنی چرا اجرا نمیشن که ببینمشون؟ یا فرمان خاموش شدن اجرا نمیشه یا مثلا فلان برنامه اجرا نمیشه با کرون.
کرون هم درحال اجراست.
-
دستوری رو که توی کرون میذاری، نشونت نمیده. مگه اینکه خروجی به محیط X بدی (با export DISPLAY=:0 مثلا) یا همین ریدایرکت کردن.
الان یعنی توی هوم یه فایل log ساخت و خروجی ورژن آریا رو توش نوشته بود؟ اگه آره پس کرون سالمه و مشکلی نداره. باید ببینی دستوراتی که میدی باید با چه روشی نوشته بشن توی کرون.
دستوری مثل آریا رو اگه هم اجرا کنه، شما نمی بینیش. مگه اینکه اول ببینی ترمینالت pts چنده. با این دستور
tty
و بعد از گرفتن آدرس، اونو بذاری جلوی دستور تا دستور رو توی ترمینالت ببینی بعد از اینکه آریا۲ اجرا شد. مثلا
00 20 * * * aria2c -v > /dev/pts/1
اگه ترمینال اصلیت pts1 باشه، خروجی ورژن آریا۲ رو توی ترمینالت نشون میده. در غیر اینصورت هیچ جا نشون نمیده تا اینکه خودت مشخص کنی کجا نشون بده.
-
خدا خیرت بده. چیزای جدیدی یاد گرفتم :) من منتظر بودم بعد از اجرای فرمان اون رو توی ترمینال ببینم! نمیدونستم توی پس زمینه اجرا میشه. حالا باید ببینم چرا خاموش شدن با کرون کار نمیکنه. این قسمت که شما راهنمایی کردی مهم ترینش بود.
توی کرون تب اگه بزنم # 01 12 * * * /sbin/shutdown -h now
اونوقت سیستم خاموش میشه ولی اگه sbin/ رو نزنم کار نمیکنه. با اینکه sbin/ رو به مسیرهام اضافه کرده ام.
-----------
راستی این مورد پیدا کردن شماره tty رو از کجا فهمیدین؟ توی راهنمای کرون نبود.
-
اون بالا دقت نکردی چی گفتم؟ نوشتم که 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)
;)
-
توضیحاتتون بسیار خوب بود. شما درست میگید سری ویدئوهایی جادی رو دیدم. ولی این مورد pts برام تازگی داشت. باز هم متشکرم از جواب کامل و به موقعتون . =D>
-
حالا خودمم دقیق خبر ندارم توی کلیپای جادی راجع به tty حرف زد یا نه. ولی کلیت حرفم رو توی کلیپای جادی میشد پیدا کرد. همین قضیهی خروجی استاندارد و اررور و ریدایرکت و ... ;)
-
سلام
بنده هم با کرون تب به مشکل خوردم و دستوراتم اجرا نمیشن توزیع فدورا ۲۳ دارم (نیاز دارم با این توزیع کار کنم).
قبلا تو ابونتو اجرا میشد ولی الان داخل فدورا اجرا نمیشن
محتویات فایل /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
-
سلام
بنده هم با کرون تب به مشکل خوردم و دستوراتم اجرا نمیشن توزیع فدورا ۲۳ دارم (نیاز دارم با این توزیع کار کنم).
قبلا تو ابونتو اجرا میشد ولی الان داخل فدورا اجرا نمیشن
محتویات فایل /etc/
سلام. دستورت رو توی
crontab -e
برای یوزر و اگه نیاز به روت داره
sudo crontab -e
برای ریشه
بذار و بعد تست کن.
و مثل استارتر، موقع اجرا شدن کرون، syslog رو چک کن.
tail -f /var/log/syslog
-
با crontab -e وsudo crontab -e هم تست کردم و دستورم اجرا نشد فایل syslog وجود نداره توزیع فدورا هستم
-
نمیدونم مشکل از کجا بوده ولی بعد از ریستارت کردن و همچنین پاک کردن تمام cronjob ها تونستم از طریق sudo crontab -e کارم رو انجام بدم.
فقط تو توزیع های ردهت بیس فایلی که همه چیزو لاگ کنه مثله syslog در اوبونتو کچا قرار داره؟
-
سوال جدید، تاپیک جدید ;)