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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: خود cron که کار نمی‌کنه‌، crontab هم که...  (دفعات بازدید: 4435 بار)

0 کاربر و 3 مهمان درحال مشاهده موضوع.

آفلاین HSN6

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • یک راَکتیست اسپرانتیست پایتونیست گودوئیست!
    • بلاگ شخصی
خود cron که کار نمی‌کنه‌، crontab هم که...
« : 25 امرداد 1392، 02:04 ب‌ظ »
سلام به همگی
وقتی توی ترمینال cron رو می‌زنم ، این خطا رو می‌ده :
cron: can't open or create /var/run/crond.pid: Permission denied

crontab هم برای اجرای اسکریپت‌های پایتون کار نمی‌کنه.
مثلا همین چیزی که پیوست کردم. crony.py تنظیم می‌کنه crontab رو برای اجرای crotofy.py
وقتی وقتش می‌رسه ، هیچ اتفاقی نمیوفته.
ولی اگه یک اسکریپت پایتونی باشه که از ماژول pygame استفاده کرده باشه ؛ سر وقتش به جای این‌که مثل یک اسکریپت خوب اجرا بشه ، کلا tty7 رو می‌زنه غیرفعال می‌کنه و بعد می‌ندازمون توی tty6 و بعد از چند ثانیه می‌شه برگشت به tty7 بدون هیچ اثری از اجرای اسکریپت.

آفلاین MHA152

  • High Hero Member
  • *
  • ارسال: 2745
  • جنسیت : پسر
  • من عاشق یونیکسی ها هستم
پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
« پاسخ #1 : 25 امرداد 1392، 02:21 ب‌ظ »
مثل اینکه باید cron را با دسترسی ریشه اجرا کنید تا فایلش را بسازه
بهتون پیشنهاد می کنم به دنیای بزرگ شبه−یونیکس وارد بشید و از پیشرفت لذت ببرید
جیمیلم

آفلاین امیرمسعود مهرابیان

  • Full Member
  • *
  • ارسال: 245
  • جنسیت : پسر
    • http://ammir.ir
پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
« پاسخ #2 : 25 امرداد 1392، 03:12 ب‌ظ »
دستورتون رو با sudo اجرا کنید. اول دستورتون یه sudo بزنین.
Freedom and community are important

آفلاین HSN6

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • یک راَکتیست اسپرانتیست پایتونیست گودوئیست!
    • بلاگ شخصی
پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
« پاسخ #3 : 25 امرداد 1392، 07:29 ب‌ظ »
خود cron رو که با sudo باز می‌کنم ، این خطا رو می‌ده:
cron: can't lock /var/run/crond.pid, otherpid may be 882: Resource temporarily unavailable
هر کدوم از اون دوتا کدی هم که گذاشتم وقتی با sudo اجراشون می‌‌کنم باز هم هیچی نمی‌شه.

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4872
  • جنسیت : پسر
  • masoft قدیم
پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
« پاسخ #4 : 25 امرداد 1392، 08:24 ب‌ظ »
نیازی به اجرای دستی cron نیست. crontab هم مشکلی با اسکریپت‌های Python نداره.

آفلاین MrGee

  • Full Member
  • *
  • ارسال: 110
  • جنسیت : پسر
پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
« پاسخ #5 : 26 امرداد 1392، 10:30 ق‌ظ »
تو پوشه etc یه سری فایل هست اونها رو دستکاری کنید:
cron.d/       cron.daily/   cron.deny     cron.hourly/  cron.monthly/ cron.weekly

آفلاین HSN6

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • یک راَکتیست اسپرانتیست پایتونیست گودوئیست!
    • بلاگ شخصی
پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
« پاسخ #6 : 26 امرداد 1392، 12:10 ب‌ظ »
تو پوشه etc یه سری فایل هست اونها رو دستکاری کنید:
cron.d/       cron.daily/   cron.deny     cron.hourly/  cron.monthly/ cron.weekly

این محتویات رو دارند و من نفهمیدم باید دقیقا چیکار کنم:
cron.d:
anacron

cron.daily:
0anacron      dpkg               mlocate             standard
apport        google-talkplugin  ntp                 update-notifier-common
apt           logrotate          passwd
bsdmainutils  man-db             popularity-contest

cron.hourly:

cron.monthly:
0anacron

cron.weekly:
0anacron  man-db  tor

میشه اون مثالی که پیوست کرده بودند رو اجرا کنید و روش کار رو به من توضیح بدید؟

آفلاین ali.abry

  • High Hero Member
  • *
  • ارسال: 1224
پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
« پاسخ #7 : 26 امرداد 1392، 05:25 ب‌ظ »
فایل etc/crontab رو ادیت کنین

خروجی زیر رو در نظر بگیر :
# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
تو خروجی بالا :
m : minute 0-59
h : hoyre 0-23
dom : day of month 0-31
mon : month 0-12
dow : day of week 0-7
user : نام کاربری
command : دستوری که اجرا میشه

زمان رو به چه شکل تنظیم کنیم :
جایی بهتر ار این جا سراغ ندارم که دقیق اموزش داده باشه
http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples
http://www.thegeekstuff.com/2011/07/cron-every-5-minutes/

تمام مقالات دیگر cron :
http://www.thegeekstuff.com/the-geek-stuff-search-powered-by-google/?cx=005666763606120661560%3Azkmegbt_djm&cof=FORID%3A10&ie=UTF-8&q=cron&sa=Search&siteurl=www.thegeekstuff.com%2F&ref=&ss=760j201866j4

اگر از crontab می خاین استفاده کنین به این شکل عمل کنین:
cron -e -u UserNameمثلا برای نام کاربری aliali :
$ crontab -e -u aliali
اگر تا حالا ادیتور تنظیم نکرده باشین خودش ازتون می پرسه که از چه ادیتوری استفاده بکنه . برای نوع تنظیم زمان هم به همون شکلی که بالا تو لینکی که گذاشتم تنظیم کنین .
« آخرین ویرایش: 26 امرداد 1392، 05:31 ب‌ظ توسط ali.abry »

آفلاین MrGee

  • Full Member
  • *
  • ارسال: 110
  • جنسیت : پسر
پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
« پاسخ #8 : 26 امرداد 1392، 06:00 ب‌ظ »
فکر کنم توضیحاتی که دادن کامل باشه ولی منم چند تا نکته رو بگم:
گویا فایل crony.py درست کار می کنه و فایل مورد مورد نظر رو تو crontab وارد می کنه.
چک کنید ببینید فایل crotofy.py درست اجرا میشه یا نه ممکنه مشکل از اون باشه.
چک کنید ببینید اصلا خود crontab کار می کنه یا نه. برای اینکار مثلا بعد از زدن دستور crontab -e خط زیر رو وارد کنید:

* * * * * echo 1 >> crontabtestاگه بعد از یکی دو دقیقه فایلی به اسم crontabtest تو home خودتون ایجاد شد یعنی  crontab درست کار می کنه و مشکل از فایل crotofy هست که درست اجرا نمیشه.
اگه این فایل ایجاد نشد مطلب زیر رو از راهنمای اوبونتو بخونید:
Enable User Level Cron
If the /etc/cron.allow file exists, then users must be listed in it in order to be allowed to run the crontab command. If the /etc/cron.allow file does not exist but the /etc/cron.deny file does, then users must not be listed in the /etc/cron.deny file in order to run crontab.
In the case where neither file exists, the default on current Ubuntu (and Debian, but not some other Linux and UNIX systems) is to allow all users to run jobs with crontab.
No cron.allow or cron.deny files exist in a standard Ubuntu install, so all users should have cron available by default, until one of those files is created. If a blank cron.deny file has been created, that will change to the standard behavior users of other operating systems might expect: cron only available to root or users in cron.allow.
Note, userids on your system which do not appear in /etc/shadow will NOT have operational crontabs, if you desire to enter a user in /etc/passwd, but NOT /etc/shadow that user's crontab will never run. Place an entry in /etc/shadow for the user with a * for the password crypt,ie:
joeuser:*:15169::::::

آفلاین امیرمسعود مهرابیان

  • Full Member
  • *
  • ارسال: 245
  • جنسیت : پسر
    • http://ammir.ir
پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
« پاسخ #9 : 27 امرداد 1392، 01:59 ق‌ظ »
من خودم با cron کار نکردم، ولی اگه نیازه که یکی از دستوراتی که خودتون گفتین رو امتحان کنین و ارور can't lock /var/run/crond.pid میگیرین، باید اون pid رو پاک کنین تا بتونین دستورتون رو اجرا کنین.
دستور زیر رو اجرا کنین :
نقل‌قول
sudo rm /var/run/crond.pid
بعد دستور خودتون رو اجرا کنین.
Freedom and community are important

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4872
  • جنسیت : پسر
  • masoft قدیم
پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
« پاسخ #10 : 27 امرداد 1392، 02:03 ق‌ظ »
crond.pid نباید به صورت دستی پاک بشه!

آفلاین ali.abry

  • High Hero Member
  • *
  • ارسال: 1224
پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
« پاسخ #11 : 27 امرداد 1392، 12:17 ب‌ظ »
من خودم با cron کار نکردم، ولی اگه نیازه که یکی از دستوراتی که خودتون گفتین رو امتحان کنین و ارور can't lock /var/run/crond.pid میگیرین، باید اون pid رو پاک کنین تا بتونین دستورتون رو اجرا کنین.
دستور زیر رو اجرا کنین :
نقل‌قول
sudo rm /var/run/crond.pid
بعد دستور خودتون رو اجرا کنین.
سرویسشو از کار بندازین درست تر هست :
sudo service cron stop

آفلاین HSN6

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • یک راَکتیست اسپرانتیست پایتونیست گودوئیست!
    • بلاگ شخصی
پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
« پاسخ #12 : 01 شهریور 1392، 03:47 ب‌ظ »
قبلا crontab رو امتحان کرده بودم ولی برای این اسکریپت پایتون کار نمی‌کنه.
crontab برای کارهای دیگه کار می‌کنه ، خود اسکریپت هم که دستی اجرا میشه و درست کار می‌کنه.
 هیشکی تونسته این اسکریپت رو با crontab اجرا کنه؟

آفلاین ali.abry

  • High Hero Member
  • *
  • ارسال: 1224
پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
« پاسخ #13 : 02 شهریور 1392، 01:59 ب‌ظ »
قبلا crontab رو امتحان کرده بودم ولی برای این اسکریپت پایتون کار نمی‌کنه.
crontab برای کارهای دیگه کار می‌کنه ، خود اسکریپت هم که دستی اجرا میشه و درست کار می‌کنه.
 هیشکی تونسته این اسکریپت رو با crontab اجرا کنه؟

احتمالا دستوری که برای اجرای اسکریپت میزارین تو کرون مشکل داره. موقعی که زمان اجراش فرا میرسه فایل
var/log/syslog/ رو چک کنین لوگ های کرون تو اون جا ذخیره میشن . دلیل اجرا نشدن رو اون جا می نویسه.
tail -f /var/log/syslog

آفلاین HSN6

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • یک راَکتیست اسپرانتیست پایتونیست گودوئیست!
    • بلاگ شخصی
پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
« پاسخ #14 : 02 شهریور 1392، 07:26 ب‌ظ »
این هم خروجی :
Aug 24 19:17:01 hsn6-desktop CRON[1572]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Aug 24 19:18:40 hsn6-desktop crontab[1741]: (hsn6) REPLACE (hsn6)
Aug 24 19:19:01 hsn6-desktop cron[848]: (hsn6) RELOAD (crontabs/hsn6)
Aug 24 19:20:01 hsn6-desktop CRON[1744]: (hsn6) CMD (python ~/crotofy/crotofy.py)
Aug 24 19:20:02 hsn6-desktop CRON[1743]: (CRON) info (No MTA installed, discarding output)