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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: HSN6 در 25 امرداد 1392، 02:04 ب‌ظ

عنوان: خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: HSN6 در 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 بدون هیچ اثری از اجرای اسکریپت.
عنوان: پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: MHA152 در 25 امرداد 1392، 02:21 ب‌ظ
مثل اینکه باید cron را با دسترسی ریشه اجرا کنید تا فایلش را بسازه
عنوان: پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: امیرمسعود مهرابیان در 25 امرداد 1392، 03:12 ب‌ظ
دستورتون رو با sudo اجرا کنید. اول دستورتون یه sudo بزنین.
عنوان: پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: HSN6 در 25 امرداد 1392، 07:29 ب‌ظ
خود cron رو که با sudo باز می‌کنم ، این خطا رو می‌ده:
cron: can't lock /var/run/crond.pid, otherpid may be 882: Resource temporarily unavailable
هر کدوم از اون دوتا کدی هم که گذاشتم وقتی با sudo اجراشون می‌‌کنم باز هم هیچی نمی‌شه.
عنوان: پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: nixoeen در 25 امرداد 1392، 08:24 ب‌ظ
نیازی به اجرای دستی cron نیست. crontab هم مشکلی با اسکریپت‌های Python نداره.
عنوان: پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: MrGee در 26 امرداد 1392، 10:30 ق‌ظ
تو پوشه etc یه سری فایل هست اونها رو دستکاری کنید:
cron.d/       cron.daily/   cron.deny     cron.hourly/  cron.monthly/ cron.weekly
عنوان: پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: HSN6 در 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

میشه اون مثالی که پیوست کرده بودند رو اجرا کنید و روش کار رو به من توضیح بدید؟
عنوان: پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: ali.abry در 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
اگر تا حالا ادیتور تنظیم نکرده باشین خودش ازتون می پرسه که از چه ادیتوری استفاده بکنه . برای نوع تنظیم زمان هم به همون شکلی که بالا تو لینکی که گذاشتم تنظیم کنین .
عنوان: پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: MrGee در 26 امرداد 1392، 06:00 ب‌ظ
فکر کنم توضیحاتی که دادن کامل باشه ولی منم چند تا نکته رو بگم:
گویا فایل crony.py درست کار می کنه و فایل مورد مورد نظر رو تو crontab وارد می کنه.
چک کنید ببینید فایل crotofy.py درست اجرا میشه یا نه ممکنه مشکل از اون باشه.
چک کنید ببینید اصلا خود crontab کار می کنه یا نه. برای اینکار مثلا بعد از زدن دستور crontab -e خط زیر رو وارد کنید:

* * * * * echo 1 >> crontabtestاگه بعد از یکی دو دقیقه فایلی به اسم crontabtest تو home خودتون ایجاد شد یعنی  crontab درست کار می کنه و مشکل از فایل crotofy هست که درست اجرا نمیشه.
اگه این فایل ایجاد نشد مطلب زیر رو از راهنمای اوبونتو (https://help.ubuntu.com/community/CronHowto) بخونید:
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::::::
عنوان: پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: امیرمسعود مهرابیان در 27 امرداد 1392، 01:59 ق‌ظ
من خودم با cron کار نکردم، ولی اگه نیازه که یکی از دستوراتی که خودتون گفتین رو امتحان کنین و ارور can't lock /var/run/crond.pid میگیرین، باید اون pid رو پاک کنین تا بتونین دستورتون رو اجرا کنین.
دستور زیر رو اجرا کنین :
نقل‌قول
sudo rm /var/run/crond.pid
بعد دستور خودتون رو اجرا کنین.
عنوان: پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: nixoeen در 27 امرداد 1392، 02:03 ق‌ظ
crond.pid نباید به صورت دستی پاک بشه!
عنوان: پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: ali.abry در 27 امرداد 1392، 12:17 ب‌ظ
من خودم با cron کار نکردم، ولی اگه نیازه که یکی از دستوراتی که خودتون گفتین رو امتحان کنین و ارور can't lock /var/run/crond.pid میگیرین، باید اون pid رو پاک کنین تا بتونین دستورتون رو اجرا کنین.
دستور زیر رو اجرا کنین :
نقل‌قول
sudo rm /var/run/crond.pid
بعد دستور خودتون رو اجرا کنین.
سرویسشو از کار بندازین درست تر هست :
sudo service cron stop
عنوان: پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: HSN6 در 01 شهریور 1392، 03:47 ب‌ظ
قبلا crontab رو امتحان کرده بودم ولی برای این اسکریپت پایتون کار نمی‌کنه.
crontab برای کارهای دیگه کار می‌کنه ، خود اسکریپت هم که دستی اجرا میشه و درست کار می‌کنه.
 هیشکی تونسته این اسکریپت رو با crontab اجرا کنه؟
عنوان: پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: ali.abry در 02 شهریور 1392، 01:59 ب‌ظ
قبلا crontab رو امتحان کرده بودم ولی برای این اسکریپت پایتون کار نمی‌کنه.
crontab برای کارهای دیگه کار می‌کنه ، خود اسکریپت هم که دستی اجرا میشه و درست کار می‌کنه.
 هیشکی تونسته این اسکریپت رو با crontab اجرا کنه؟

احتمالا دستوری که برای اجرای اسکریپت میزارین تو کرون مشکل داره. موقعی که زمان اجراش فرا میرسه فایل
var/log/syslog/ رو چک کنین لوگ های کرون تو اون جا ذخیره میشن . دلیل اجرا نشدن رو اون جا می نویسه.
tail -f /var/log/syslog
عنوان: پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: HSN6 در 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)
عنوان: پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: ali.abry در 02 شهریور 1392، 07:32 ب‌ظ
دستورتون رو بزارین تو یک فایل با قابلیت اجرایی بعد دستور اجرا کردن اون فایل رو تو کرون بزارین. اون جوری شاید کار کرد
عنوان: پاسخ : خود cron که کار نمی‌کنه‌، crontab هم که...
ارسال شده توسط: HSN6 در 02 شهریور 1392، 08:29 ب‌ظ
دستورتون رو بزارین تو یک فایل با قابلیت اجرایی بعد دستور اجرا کردن اون فایل رو تو کرون بزارین. اون جوری شاید کار کرد
کاری که گفتید هم نشد!