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

کمک و پشتیبانی => راهنماها، نکات و ترفندها => نویسنده: رسول سعیدنژاد در 08 اسفند 1393، 06:29 ب‌ظ

عنوان: سوال راجب ادغام کردن Cron کاربر و ریشه. (حل شد!)
ارسال شده توسط: رسول سعیدنژاد در 08 اسفند 1393، 06:29 ب‌ظ
سلام دوستان.
به این دو کامند زیر توجه کنین
sudo apt-get -y dist-upgrade
man history > log.log

دستور اول sudo داره و میشه اونو توی کرون ریشه تنظیم کرد.
دستور دوم sudo لازم نداره و میشه اونو توی کرون کاربر تنظیم کرد.
حالا سوال من:
از اونجایی که دستور معمولی (بدون sudo) توی کرون ریشه اجرا نمیشه و از اونجایی که دستور sudo دار، توی کرون معمولی با نوشتن echo "pass" | sudo اجرا میشه، من برای تنظیم این دستور توی کرون باید دقیقا چه گلی به سرش بگیرم؟  :D
00 01 * * * man history > log.log && apt-get -y dist-upgrade
1) یعنی برای اینکه یه خط دستور من، هم معمولیه هم ریشه ای، باید اینو توی کدوم کرون بذارم؟؟  ;D
2) یا با چه روشی میشه دستور معمولی رو توی کرون ریشه اجرا کرد؟؟

مرسی  ;)
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: M3 در 08 اسفند 1393، 07:30 ب‌ظ
خب دستورات مخصوص هر کاربر رو در کرون خودش بزار ولی اگه میخوای یک دستور با دسترسی ریشه انجام بشه اون رو در فایل /etc/crontabبزار بدون sudo
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: رسول سعیدنژاد در 08 اسفند 1393، 08:06 ب‌ظ
خب دستورات مخصوص هر کاربر رو در کرون خودش بزار ولی اگه میخوای یک دستور با دسترسی ریشه انجام بشه اون رو در فایل /etc/crontabبزار بدون sudo

خسته نباشی جناب  :D
موضوع اینه که دستوری که من میدم نصفش معمولیه و نصف دیگه ش نیاز به دسترسی ریشه داره.
من میخوام یه دستور معمولی توی کرون ریشه اجرا بشه. قبلا دستورات ریشه رو توی کرون معمولی (با echo "pass" | sudo ) انجام میدادم. الان دیگه نمیخوام رمزم رو توی این کرون بنویسم و از یه طرف هم دستورات بدون ریشه هم در کنار با ریشه ها نیاز دارم.
فرض کن شما میخوای یه دستور man از یه نرم افزار بگیری توی یه ساعت مشخص. ولی توی کرون ریشه میخوای بنویسی. حالا فرض کن هم دستور ریشه ای هم معمولی پشت سر هم توی یه ساعت باید اجرا بشن (اول یکی اجرا بشه تموم شد بعدی رو بلافاصله اجرا کنه)
خب تو این جور مواقع چکار می کنی؟  ;)
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: رسول سعیدنژاد در 08 اسفند 1393، 11:13 ب‌ظ
برای بیشتر وقت ها راه حل اینه که بیاییم مثلا:
crontab -e
00 22 * * * man history > log.log

و مثلا

sudo crontab -e
01 22 * * * apt-get -y dist-upgrade

رو بزنیم. خب این که مشخصه.
موضوع این جاس که این دو دستور بالا (man و apt-get) رو من توی یه خط باید بدم. مثلا شب ها بعد از اینکه دانلود تموم شد، سیستم آپگرید میشه و بعد از آپگرید شدن خاموش میشه. سه تا دستور توی یه خط که با && به هم وصل شدن. یک دستور معمولیه و دو دستور نیاز به sudo داره.
خب من الان توی sudo crontab چجوری میتونم اون دستور معمولی رو وارد کنم؟؟؟
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: دانیال بهزادی در 09 اسفند 1393، 01:10 ق‌ظ
یه فایل بش بساز از این، بعد با سودو بده به کرون ریشه
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: رسول سعیدنژاد در 09 اسفند 1393، 01:20 ق‌ظ
یه فایل بش بساز از این، بعد با سودو بده به کرون ریشه
سلام.
یعنی دستورات معمولیم (مثل آریا2) رو بذارم توی بش و بش رو بدم به cron ریشه؟؟
همه جور دستوری رو شامل میشه؟؟ مثلا اجرا برنامه ها بدون sudo (مثلا با export DISPLAY و ...)؟؟
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: دانیال بهزادی در 09 اسفند 1393، 01:22 ق‌ظ
آره. داخل بش‌اسکریپت همه‌چیز رو بدون سودو بنویس، انگار که روت می‌خواد اجرا کنه، بعد خود بش‌اسکریپت رو بده به کرون ریشه
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: رسول سعیدنژاد در 09 اسفند 1393، 01:29 ق‌ظ
آره. داخل بش‌اسکریپت همه‌چیز رو بدون سودو بنویس، انگار که روت می‌خواد اجرا کنه، بعد خود بش‌اسکریپت رو بده به کرون ریشه
مرسی  ;)
خب تا اینجا دوتا راه حل واسه مشکلم پیدا شد
روش شما توی همین تاپیک و روش مجتبی جان توی تاپیک قبلیم (http://forum.ubuntu.ir/index.php/topic,111922.0.html (http://forum.ubuntu.ir/index.php/topic,111922.0.html))
در حال حاضر بلد نیستم فایل بش بسازم. پس باید برم یاد بگیرم. روش مجتبی جان هم که هرچی تست می کنم جواب نمیده. فکر کنم مجتبی پارتیش کلفت تره  ;D
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: دانیال بهزادی در 09 اسفند 1393، 01:30 ق‌ظ
کاری نداره. همه‌ی دستوراتت رو پشت سر هم و هر کدوم رو در یک خط می‌نویسی توی یه پرونده. بعد بهش دسترسی اجرایی می‌دی:
$ chmod +x FILE
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: رسول سعیدنژاد در 09 اسفند 1393، 01:33 ق‌ظ
کاری نداره. همه‌ی دستوراتت رو پشت سر هم و هر کدوم رو در یک خط می‌نویسی توی یه پرونده. بعد بهش دسترسی اجرایی می‌دی:
$ chmod +x FILE

یعنی مثلا اینو
aria2c -c -j1 -x16 -s16 -k 1M -d /home/kubuntu/Downloads -i /home/kubuntu/Desktop/Link.txt -l ~/Log/download.log --log-level=notice > ~/Log/aria2c.logبذارم توی یه خط توی یه فایل متنی بعد با پسوند بش ذخیره ش کنم و بهش دسترسی اجرایی بدم و بعد توی کرون ریشه آدرسش رو بدم؟؟ دستورات sudo دار هم که قاعدتا بدون مشکلی توی کرون ریشه اجرا میشن.
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: دانیال بهزادی در 09 اسفند 1393، 01:35 ق‌ظ
دقیقاً (;
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: رسول سعیدنژاد در 09 اسفند 1393، 01:36 ق‌ظ
دقیقاً (;
مرسی  ;)
تست میکنم و خبر میدم  ;)
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: رسول سعیدنژاد در 09 اسفند 1393، 11:40 ق‌ظ
ای بابا اینم که نمیشه.
من یه دستور گذاشتم توی فایل بش. بهش دسترسی دادم.
روش که دابل کلیک میکنم دستور اجرا میشه.
توی کرون معمولی هم که با echo میذارم اجرا میشه.
ولی توی کرون ریشه به هیچ طریقی اجرا نمیشه. sudo میذارم نمیشه. نمیذارم بازم نمیشه. echo هم میدم بازم نمیشه. کلا توی کرون ریشه هر کار کردم اجرا نشد. در صورتی که توی کرون معمولی با echo اجرا شد.  ](*,)
این کرون ریشه خیلی ناز می کنه نمی دونم چرا  >:(
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: M3 در 09 اسفند 1393، 01:57 ب‌ظ
ای بابا اینم که نمیشه.
من یه دستور گذاشتم توی فایل بش. بهش دسترسی دادم.
روش که دابل کلیک میکنم دستور اجرا میشه.
توی کرون معمولی هم که با echo میذارم اجرا میشه.
ولی توی کرون ریشه به هیچ طریقی اجرا نمیشه. sudo میذارم نمیشه. نمیذارم بازم نمیشه. echo هم میدم بازم نمیشه. کلا توی کرون ریشه هر کار کردم اجرا نشد. در صورتی که توی کرون معمولی با echo اجرا شد.  ](*,)
این کرون ریشه خیلی ناز می کنه نمی دونم چرا  >:(

به چه شکلی تو کرون ریشه میزاری اینجا بزار
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: رسول سعیدنژاد در 09 اسفند 1393، 01:59 ب‌ظ
kubuntu@Rasubuntu:~$ sudo crontab -e
............#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

00 02  * * * bash ~/Dialogshutdown
01 02  * * * sudo bash ~/Dialogshutdown
03 02  * * * sudo -u kubuntu bash ~/Dialogshutdown

عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: nixoeen در 09 اسفند 1393، 04:10 ب‌ظ
کاربر kubuntu به root/Dialogshutdown/ دسترسی نداره، در نتیجه اصلا اجرا نمی‌شه. توی دستوراتتون از ~ استفاده نکنید، همچنین فایل مورد نظر اگر قرار هست که با یک کاربر دیگه اجرا بشه، توی Home همون کاربر بذاریدش.
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: رسول سعیدنژاد در 09 اسفند 1393، 04:43 ب‌ظ
کاربر kubuntu به root/Dialogshutdown/ دسترسی نداره، در نتیجه اصلا اجرا نمی‌شه. توی دستوراتتون از ~ استفاده نکنید، همچنین فایل مورد نظر اگر قرار هست که با یک کاربر دیگه اجرا بشه، توی Home همون کاربر بذاریدش.

یعنی باید به این صورت
03 02  * * * sudo -u kubuntu bash home/kubuntu/Dialogshutdownبذارم؟؟ یا کلا روش دیگه ای؟؟ یعنی میگین این ~/Dialogshutdown توی روت هست؟؟ آخه من اینو توی صفحه ی اول هومم گذاشتم. چون توی کرون معمولی همین جوری دستور میدادم، برای روت هم همین جوری دادم. گفتم خب فایلم که از سر جاش جا به جا نشده.  ;)
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: رسول سعیدنژاد در 09 اسفند 1393، 04:49 ب‌ظ
آهان.
مرسی. تست کردم این دفعه جواب داد. برم ببینم بقیه هم جواب میدن یا نه  ;)
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: nixoeen در 09 اسفند 1393، 04:55 ب‌ظ
03 02  * * * sudo -u kubuntu bash /home/kubuntu/Dialogshutdown
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: رسول سعیدنژاد در 09 اسفند 1393، 04:58 ب‌ظ
دستور
export DISPLAY=:0.0توی کرون ریشه اجرا نمیشه. اینو هم با sudo تست کردم، هم با sudo -u kubuntu
اینم کد اصلیش
56 16 * * * export DISPLAY=:0.0; /usr/bin/zenity --info --text="Check kon cron eto Yaro!"
برای دستور shutdown -h now دیگه نیاز به sudo نیست. درسته؟؟
برای pm-suspend هم نیاز به sudo نیست. درسته؟

بعد چرا وقتی از روش sudo -u user‌استفاده می کنم، پنجره ها مثل ویندوز 98 میشه؟؟  ;D
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: nixoeen در 09 اسفند 1393، 05:38 ب‌ظ
DISPLAY=:0.0 /usr/bin/zenity --info --text="Check kon cron eto Yaro!"
عنوان: پاسخ : سوال راجب ادغام کردن Cron کاربر و ریشه.
ارسال شده توسط: رسول سعیدنژاد در 09 اسفند 1393، 05:44 ب‌ظ
DISPLAY=:0.0 /usr/bin/zenity --info --text="Check kon cron eto Yaro!"

مرسی  ;)
مشکل از این ; بود؟؟ خب چرا توی کرون کاربر، مشکلی نداره؟
در مورد تم ویندوز98 هم نگفتین  :D
خیلی وقتا دیدم که استایل برنامه ها عین گنوم2 میشه. مثلا جی پارتد یا سامبا و ... چرا؟