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

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

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


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: شروع دانلود و خاموش شدن خودکار با تکیه بر cron و aria2c  (دفعات بازدید: 134220 بار)

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

آفلاین jali316

  • Full Member
  • *
  • ارسال: 118
  • جنسیت : پسر
  • ubuntu 16.04
نه  ;D
وقتی میخوای دستورات پشت سر هم اجرا بشن پس باید همه رو توی یه کرون بذاری. یا باید تمام دستورات عادی و ریشه رو بذاری توی کرون یوزر که خب بخش ریشه‌ش نقض امنیتی بوجود میاره یا باید تمام دستورات عادی و ریشه‌ای رو بذاری توی کرون ریشه که این بهترین راه حله. منتها چون دستورات عادی توی کرون ریشه به صورت نرمال اجرا نمیشن باید قبل از دستور از sudo -u $USER استفاده کنی تا سیستم متوجه بشه که اون دستور رو چه کاربری میخواسته اجرا کنه. توی اون دیالوگ هم اگه دقت کنی، من sudo -u $USER گذاشتم چون باید اینو بذاری توی کرون ریشه. Zenity برنامه‌ای نیست که نیاز به Root داشته باشه و برای اینکه توی کرون ریشه بخوای اجراش کنی باید به سیستم بفهمونی که من این Zenity رو میخوام ران کنم. کارِت نباشه  ;D ;D
بنابراین اینجوری میشه:
15 01 * * * sudo -u $USER aria2c -c -j1 -x16 -s16 -k 1M -d /home/$USER/Downloads -i /home/$USER/Desktop/Link.txt -l downloadlog --log-level=notice > logdownloadaria2c ; sudo ~/Dialogshutdownکرون ریشه برای دستورات ریشه‌ای نیاز به sudo نداره. ولی من نمیدونم چرا برای shutdown باز sudo‌میخواد  ??? فکر کنم یه بار جوابش رو دوستان دادن. ولی من یادم نیست. پس دوباره  ???
 ;D
راستی. دستورات طولانی رو بذار توی اسکریپت و بعد توی کرون آدرس اسکریپت رو بذار. گفتم که این پست مال قدیماس. کم کم آدم چیزای اصولی تر رو یاد میگیره  ;)
مثلا این واسه منه در حال حاضر:
# 15 01  * * * /home/ubuntu/Shell\ Script\ Command/dl-script ; sudo shutdown -h nowاین برای اجرا کردن اسکریپت مورد نیاز من، هرشب راس ساعت ۰۱:۱۵ و اینم محتویات اسکریپت:
#! /bin/bash

sudo -u ubuntu aria2c -c -j1 -x16 -s16 -k 1M -d /home/ubuntu/Downloads -i /home/ubuntu/Text/Link.txt > /home/ubuntu/Log/aria2c.log 2> /home/ubuntu/Log/aria2c-error.log
sudo apt-get update
sudo apt-get -y --download-only dist-upgrade > /home/ubuntu/Log/upgrade.log 2> /home/ubuntu/Log/upgrade-error.log
# sudo apt-get -y --download-only install
که خب از زمانی که های وب خریدم دیگه شب ها کاری انجام نمیدم و این اسکریپت ها به خاطره تبدیل شدن  ;D

نتیجه: اگه میخوای یه سری دستور توی کرون بذاری که باید پشت سر هم اجرا بشن، اگه یه سری دستور عادی‌ان و یه سری دستور ریشه‌ای هستن، باید کل اون خط رو توی کرون ریشه بذاری و برای دستورات عادی اون خط از sudo -u $USER استفاده کنی. ولی باقی خط‌ها اگه فقط شامل دستور عادی یا فقط شامل دستور ریشه هستن، میذاریشون توی کرون های مربوط به خودشون.
sudo -u $USER رو داخل کرون گذاشتم نشد اصلا کار نکرد اومدم قبل ورود استفاده کردم یعنی 
sudo crontab -u $USER -e
کار کرد اسکریپت هم sudo  رو حذف کردم
عالی شد خیلی خیلی ممنون \\:D/
\********** زندگی یعنی یاد دادن و آموختن ؛ ابونتو یعنی زندگی **********/

آفلاین رسول سعیدنژاد

  • High Hero Member
  • *
  • ارسال: 3504
  • جنسیت : پسر
  • علی (ع): زَكَاةُ الْعِلْمِ نَشْرُه
نمیدونم این کاری که انجام دادی اصولی بود یا نه.
ولی شاید دلیلی که باعث شده $USER اجرا نشه خود همین متغییر بوده. یعنی به جاش اسم یوزرت رو بنویس و تست کن.
اینی که زدی بازم کرون یوزر رو باز میکنه و چون دستور sudo یه مدت زمان خاصی فعال هست و بعد دوباره ازت برای اجرا کردن رمز میخواد پس کارت به مشکل میخوره فکر کنم.
نرم افزار، یک ابزاره. برای رسیدن به هدف ازش استفاده کنید. نرم افزار هدف شما نیست :) - آزادی، بزرگ‌ترین دروغ بشریت

آفلاین jali316

  • Full Member
  • *
  • ارسال: 118
  • جنسیت : پسر
  • ubuntu 16.04
نمیدونم این کاری که انجام دادی اصولی بود یا نه.
ولی شاید دلیلی که باعث شده $USER اجرا نشه خود همین متغییر بوده. یعنی به جاش اسم یوزرت رو بنویس و تست کن.
اینی که زدی بازم کرون یوزر رو باز میکنه و چون دستور sudo یه مدت زمان خاصی فعال هست و بعد دوباره ازت برای اجرا کردن رمز میخواد پس کارت به مشکل میخوره فکر کنم.
اینکه نه یوزر نیم خودم رو زدم من کرون (راهنمای کرون) هم -u هست فکر نکنم مشکلی باشه فقط داخل یوزر خودم ایجاد کرده این کرون خیلی خفن روت و بقیه یوزرها تفکیک قائل میشه بازم تشکر  :D
\********** زندگی یعنی یاد دادن و آموختن ؛ ابونتو یعنی زندگی **********/

آفلاین رسول سعیدنژاد

  • High Hero Member
  • *
  • ارسال: 3504
  • جنسیت : پسر
  • علی (ع): زَكَاةُ الْعِلْمِ نَشْرُه
خب نه بحث اینه که شما با این دستور بازم داری دستوراتت رو توی کرون یوزر مینویسی. و توی کرون ریشه نیستن. و کرون یوزر دستور روت نداره و اگه قبلش sudo گذاشتی یعنی تا زمانی که sudo روی اون دستوری که زدی کار میکنه، کرونت هم کار میکنه. بعدش که از کار بیفته دیگه کرون هم دستوراتش اجرا نمیشه. پس باید دستور ریشه رو داخل کرون ریشه بذاری. من که میذارم و مشکلی نداره. پس باید ببینی کجاش رو اشتباه میزنی.
اگه با گذاشتن sudo قبل از کرون یوزر تا آخرین سیشن برات بدون مشکل کار کنه، با سیشن بعدی یا ریبوت دوباره از کار می افته و باید باز sudo crontab -u $USER -e رو بزنی هر دفعه. پس اینم اصولی نیست.
نرم افزار، یک ابزاره. برای رسیدن به هدف ازش استفاده کنید. نرم افزار هدف شما نیست :) - آزادی، بزرگ‌ترین دروغ بشریت

آفلاین Sadrolla

  • Sr. Member
  • *
  • ارسال: 443
  • جنسیت : پسر
آقا رسول یه پیشنهاد دیگه :دی
هر وقت فرصت کردی
همین کاری که کردی اسکریپت و cron و ... رو از صفر تا صد بنویسش و بزارش مثلا در اوبونتو نیوز
این‌جوری یه مقاله جمع و جور می‌شه که می‌شه به افرادی که نیاز دارن لینک داد و از تعداد سؤال‌های تکراری کم می‌شه
توی اوبونتونیوز هم باز به نظرم یه کار اضافیه. توی همون ویکی می نویسم اگه وقت کنم. قرار بود کلا فعالیتم رو ببرم توی ویکی و اینجا دیگه پست ندم. یه پیج Nano هم زدم ولی چشم خوردم دوباره از تو خیال ویکی در رفتم ;D ولی چشم، حتما اینجور آموز‌ش ها رو می نویسم. البته اسکریپت رو میشه گذاشت توی گیت هاب و بعد لینک اونارو گذاشت.
بعد راستی یه چیز دیگه. طبق تجربه‌ای که من با دیدن LPIC101 بدست آوردم، به نظرم کلا نوشتن مقاله‌ی لینوکسی چیز بیخودیه. به نظرم وظیفه‌ی ما فقط آگاهی دادن توی زمینه‌ی ابزارها و تعاریفشون باید باشه.
مثلا من الان وقتی یه برنامه می بینم، دیگه نمیرم بخونم ببینم طرف چه توضیحاتی برای سینتکس و ... داده. همون من پیجش رو بخونم همه چیز دستم میاد.
برای همین مثلا گفتن اینکه کرون چیه و فقط سینتکس اصلیش رو بنویسیم کافیه. تا اینکه بخواهیم واسش مقاله درست کنیم. چون مقاله‌ای که درست میکنیم اکثر موارد فقط به درد خودمون میخوره  ;D و سلیقه و نیاز دیگران با ما فرق داره.
واسه همین به جای اینکه بیاییم کلی توضیح بدیم روی یه موضوع، فقط معرفیش کنیم که اسم اون ابزار  به گوششون بخوره. دیگه باقیش رو برن توی من پیج بخونن. اینجوری وقتمون روی معرفی ابزارهای بیشتری صرف میشه.
ولی اسکریپت رو موافقم. اسکریپت یه مزیت خیلی خوبی که داره اینه که ایده میده به آدم. علاوه بر اینکه مثلا برای یه اسکریپت بش، کاربر باید کار با بش رو یاد بگیره، باید یه سری هم اسکریپت ببینه که ایده پیدا کنه واسه کارهای خفن‌تر.  واسه همین من ترکیب ویکی + گیت هاب رو به مقاله نوشتن توی یه سایت ترجیح میدم. توی ویکی برنامه هارو معرفی می کنیم و توی گیت هاب تجربه‌هامون رو شیر می کنیم.  :)

یه مسأله‌ای که man page ها دارن اینه که همه‌چیز برنامه رو می‌گن و کسی که انگلیسش ضعیف باشه یا تازه‌کار گیج می‌شه
مثلا شما mplayer رو در نظر بگیر؛ غالبا این موارد نیاز هاست (جلو و عقب بردن کم، جلو و عقب بردن ممتوسط، جلو و عقب بردن زیاد، کم و زیاد کردن صدا، عقب و جلو بردن زیرنویس، دکمه‌ای که تمام صفحه کنه، دکمه‌ای که از تمام صفحه در بیاره)  خوب mplayer کلی سوئیچ دیگه هم داره که غالبا مورد نیاز نیستن
aria2c هم همینطوره چند تا سوئیچ داره که غالبا نیاز می‌شن
میشه اون‌ها رو به فارسی توضیح داد
یا مثلا همین اسکریپت شما ساعت ۰۱:۱۵ شروع می‌شه تا ۰۶:۱۵ اما من می‌خوام ۰۱:۰۱ شروع بشه تا ۰۶:۵۹ خوب الآن من دقیقا چه کدی رو تغییر بدم
یا کلی مثال دیگه

منظور کلی‌ام اینه که می‌شه ابزار رو معرفی کرد + موارد پر کاربرد رو توضیح داد + بقیه رو حواله داد به man page
راجع به اسکریپت هم اون رو به اشتراک گذاشت و بخش‌های مختلفش رو توضیح داد که دوستان تازه کار هم راه بیفتن
اول قوانین خدا را به طور کامل رعایت کنیم بعد انتظار حمایت کامل رو از خدا داشته باشیم.

آفلاین رسول سعیدنژاد

  • High Hero Member
  • *
  • ارسال: 3504
  • جنسیت : پسر
  • علی (ع): زَكَاةُ الْعِلْمِ نَشْرُه
قبول دارم ولی یه نکته‌ای رو فراموش کردی
ببین کسی که میخواد با کرون کار کنه قاعدتا باید قبلش کلی چیز میز دیگه یادگرفته باشه. چون مثلا یه تازه کار خیلی کم پیش میاد که سر و کارش به کرون بیفته. قبول داری؟ کسی که میاد توی گنولینوکس، ذره ذره وارد جزئیات میشه و اگه بخوای از همون روز اول بهش اینارو یاد بدی، بیچاره اوچ پیز میشه  ;D
همه‌ی ابزارها هم‌سطح نیستن. از سطح آماتور بگیر تا فوق حرفه‌ای.
مثلا الان توی LPIC101 دوره‌ی دوم تازه کرون رو یاد میدن. حساب کن قبل از اینکه طرف بره سراغ کرون قبلش با sed کار کرده  :o تفاوت سطح‌هارو اگه دقت کنی، به حرف من میرسی. کسی که میخواد بره سراغ کرون، حساب کن قبلش LPIC101 دوره‌ی اول رو دیگه خورده  ;D پس کاری نداره براش که من پیج بخونه.
همین که کارایی یه ابزار رو توضیح بدیم به نظر من کافیه. همش هم که نمیشه واسه تازه‌کارها مطلب نوشت. ما خودمون مگه با مطالب آماتوری لینوکس یادگرفتیم؟ دیگه اینقدر لازم نیست سطح پایین توضیح بدیم تا بقیه یادبگیرن. حتی بعضی جاها ممکنه به شعور مخاطب هم بربخوره.
واسه همین به نظر من همین که کرون رو معرفی کنیم و کاراییش رو توضیح بدیم کافیه. دیگه کاربردش براساس سلیقه‌ی هرکس فرق داره و میتونه بره دنبالش تا پیداش کنه. مثلا من خیلی توی نت میچرخم که مثلا کاری رو که با ffmpeg میخوام انجام بدم ولی نمیدونم چجوری انجام بدم رو پیدا کنم ولی پیدا نمیشه  ;D همیشه اکثرا چیزای سطح پایین رو نوشتن پس تکرار این چیزا دیگه فایده‌ای نداره.
مثلا دوره‌ی اول LPIC رو میواس حتما بخونم و ببینم تا بفهمم. ولی دوره‌ی دومش رو فقط سرفصل بهم بدن خودم یاد میگیرم دیگه. کافیه بدونی هر فصل چه چیزایی توشه و همونارو توی شل کار کنی. چارتا سوییچ و یه من پیج که بیشتر نیستن هر کدومشون. ولی باعث میشه وقت کافی داشته باشیم که ابزارهای بیشتری رو معرفی کنیم.
برای اون بخش کرون که مثال زدی خب وقتی ما فقط بنویسیم که به ترتیب توی کرون اینجوری باید نوشت:
m h d m w
دیگه تغییر ساعت ها کاری نداره.
بحث انگلیسی رو قبول دارم ولی ما نباید برای یادگرفتن انگلیسی تلاش کنیم؟ انگلیسی که فقط به درد من پیج خوندن نمی خوره  :)
موارد پرکاربرد رو قبول دارم. کانال گنولینوکس کامندز رو اگه دقت کنی، همین جوری توش نوشتم. معرفی و دستورات پرکاربردش. ولی میگی صفر تا صد. منم میگم دیگه این مقدار لازم نیست وارد جزئیات بشیم و خود کاربر بره بیفته تا یاد بگیره.
توی اسکریپت هم وقتی از کامندهای شل استفاده میشه دیگه به نظرم نیاز به توضیح نداره چون وقتی LPIC کار کرده باشه طرف، تقریبا تمام اون کدهارو میتونه تشخیص بده. وقتی جادی اومده وقت گذاشته و اینهمه کلیپ درست کرده که یاد داده، دیگه اختراع دوباره چرخه که ما هم بیاییم از اول توضیح بدیم اینارو. قبول داری؟ اسکریپت نصفش که انگلیسی و کامنته و میشه خوند و فهمید. نصفش هم کامنده که وقتی کار کرده باشیم میشه فهمید. فقط یه سری بخش‌هاش ممکنه برای هرکسی قابل فهم نباشه که برای اونا توضیحات میدیم. مثلا ورودی خوندن از یه فایل دیگه داخل اون اسکریپت که باید توضیح بدی این فایل رو هم باید داشته باشی که بتونه اجرا بشه و ...
همیشه فکر میکنیم باید مطالبمون رو جوری بگیم که تازه‌کارها متوجه بشن ولی توی ایران درصد تازه‌کارها خیلی کمتر از افراد حرفه‌ای یا متوسط هستن که اونم میتونیم بهشون بگیم برم کلیپای جادی رو ببینن و در عرض یکی دو ماه برسن به جایی که راحت بتونن کدها و اسکریپت ها و کامندها رو تشخیص بدن و با ایده‌های داخل ذهنشون چیزای فان درست کنن.
نرم افزار، یک ابزاره. برای رسیدن به هدف ازش استفاده کنید. نرم افزار هدف شما نیست :) - آزادی، بزرگ‌ترین دروغ بشریت

آفلاین Sadrolla

  • Sr. Member
  • *
  • ارسال: 443
  • جنسیت : پسر
درسته که من قبل از شما با گنو/لینوکس آشنا شدم، اما چون شما بیش‌تر از من با سیستم ور رفتید، من حرف شما رو می‌پذیرم و رو حرف شما حرفی نمی‌زنم :دی
و اینکه الآن فهمیدم چرا چند سال پیش که می‌خواستم cron یاد بگیرم هیچی ازش نفهمیدم، نگو cron خیلی پیش رفته است :p
اول قوانین خدا را به طور کامل رعایت کنیم بعد انتظار حمایت کامل رو از خدا داشته باشیم.

آفلاین رسول سعیدنژاد

  • High Hero Member
  • *
  • ارسال: 3504
  • جنسیت : پسر
  • علی (ع): زَكَاةُ الْعِلْمِ نَشْرُه
درسته که من قبل از شما با گنو/لینوکس آشنا شدم، اما چون شما بیش‌تر از من با سیستم ور رفتید، من حرف شما رو می‌پذیرم و رو حرف شما حرفی نمی‌زنم :دی
و اینکه الآن فهمیدم چرا چند سال پیش که می‌خواستم cron یاد بگیرم هیچی ازش نفهمیدم، نگو cron خیلی پیش رفته است :p
اختیار داری  :)
من فقط چیزایی که تجربه‌ کردم میگم.
ما یه سری کامند داریم که ممکنه آسون باشن ولی دیر پیداشون کردیم  ;D یا یه سری کامند که سختن ولی سریع بهشون برخورد میکنیم. مثلا من sed رو بعد از کرون یاد گرفتم چون اطلاعی ازش نداشتم  ;D
ولی دوره‌ای مثل LPIC میاد اصولی‌تر کامندهارو یاد آدم میده. به ترتیب و نوبت به نوبت.

واسه یه سری چیزا توی اینترنت آموزش پیدا نمیشه. قبول دارم. مثلا خودم چندماه خودمو کشتم حتی یه آموزش هم برای نصب اوبونتوتاچ روی اوبونتو وجود نداشت. تا اینکه توی یوتیوب یه کلیپ دیدم که طرف روی مینت نصبش کرده بود. منم ایده گرفتم و تونستم حتی راه های بیشتری از توش دربیارم و آموزشش رو نوشتم. که خودم احتمال میدم دیگه آموزش فارسی‌ای برای نصب اوبونتوتاچ نباشه غیر از اون آموزش.  ](*,)
آره برای این جور مباحث باید آموزش نوشت و مفصل توضیح داد. ولی چیزای دیگه توی نت هستن و من پیج هم دارن و کلی راهنما هست و ... دیگه آموزش از بیخ لازم ندارن. همین که فقط به ایرانی‌ها آگاهی بدیم که فلان ابزار هست که کار رو براشون خیلی راحت‌تر میکنه و یه مثال جزئی هم براشون بزنیم، کافیه. خداوکیلی ببین همین جا توی این فروم چقدر زمان‌ها داره واسه توضیح دادن هدر میره. اینجاس که شما میگی یه آموزش درست کنیم و همون رو لینک بدیم تا همه از همون استفاده کنن و دیگه هی سوال تکراری قرار نباشه جواب بدیم. ولی من میگم چرا باید این اتفاق افتاده باشه واسه ماها؟ به نظرم ما به جای نوشتن آموزش‌های مفصل که کلی وقت گیر هم هست و توی نت هم صدمدل ازش هست، بیاییم وفت بذاریم روی توسعه‌ی فرهنگ ویکی خونی و ویکی نویسی یا ارائه الگو از سایت های لینوکسی و برنامه نویسی و ... تا اینکه جوونامون فرهنگ من پیج خوندن پیدا کنن تا به اوج تنبلی برسن  ;D تا اینکه یه لقمه آماده بدیم بهشون که نتونن کامل یادبگیرن و از لحاظ یادگیری دچار تنبلی بشن  ;)
من به شخصه وقتی ازکسی سوالی بپرسم و اون بگه برو سرچ کن  ;D متوجه میشم که من هوش فهمیدن جواب اون سوال رو دارم پس خودم میتونم جوابشو پیدا کنم. حالا به خاطر تنبلی اومدم سوال پرسیدم (یکی از همون چیزایی که توی مطلب هوشمندانه سوال بپرسیم راجع بهش بحث شده) و این باعث میشه روند یادگیری من کُند پیش بره. درصورتی که باید همون جواب "برو سرچ کن" رو طلا گرفت گذاشت تو طاقچه. ولی خب می بینیم یه عده‌ای رو که در واکنش به این جواب راجع به اون طرف اینجوری قضاوت میکنن که چمیدونم طرف خیلی خودشو میگیره و فکر کرده کی هسته و حالا چون چارتا دستور بلده فکر کرده خیلی کارش درسته و ... اینا همه معضله. وضع ناجوریه. من یکی از اهدافم علاوه بر اینکه هرچیزی راجع به گنولینوکس میدونم و میفهمم رو با بقیه به اشتراک میذارم، اینه که از نظر فرهنگی گنولینوکس رو توسعه بدم. تا کاربرا یاد بگیرن سرچ کنن، من پیج بخونن، به چیزی که یادگرفتن اکتفا نکنن و بیشتر به عمق مطلب نفوذ کنن، و مخشون رو به کار بندازن تا به تنبل اعظم تبدیل بشن  ;D
البته تا اینجا دیگه همه اکثرا میدونن من تو جبهه‌ای هستم  ;D من معتقدم که لینوکس کار کسیه که واقعا بشینه لینوکس رو کار کنه و یادش بگیره و درکش کنه و باهاش زندگیش رو بچرخونه اونم بیشتر از طریق برنامه نویسی و کارهای خفن و کسی که فقط یه سیستم عامل گنولینوکسی نصب میکنه که مثل ویندوز باشه فقط ویروس نگیره و رایگان باشه رو من لینوکسی نمی دونمش. که خب مخالف هم زیاد داره این بحثم ولی خب به من مربوط نیست. من براساس همین اعتقادی که دارم، پیش میرم و فعالیتم هم بیشتر توی همین زمینه هست و سعی میکنم بقیه رو هم توی همین مسیر بیارم. از نظر خودم که درسته و از نظر دیگران ممکنه غلط باشه. دیگه هرکی فکر میکنه من اشتباه میرم، بیاد وسط میدون ببینیم چندمرده حلاجه  :) البته منظورم شما نبودیا اصلا. یه موقعی درد دل من وا میشه میریزم همه چی رو بیرون  ;D
در کل هدف بلند مدت من توی زمینه‌ی گنولینوکس، به اشتراک گذاشتن دانش خودم توی ویکی و گیت هاب هست که تا اینجا که دانش بالایی ندارم در همون حد شیر میکنم ولی هر روز دنبال یادگیری هرچه بیشتر گنولینوکس هستم تا به جای اینکه بیام توی این انجمن با بقیه بحث کنم، می شینم چارتا مطلب مفید یادمیگیرم در اختیار دیگران میذارم
نرم افزار، یک ابزاره. برای رسیدن به هدف ازش استفاده کنید. نرم افزار هدف شما نیست :) - آزادی، بزرگ‌ترین دروغ بشریت

آفلاین Sadrolla

  • Sr. Member
  • *
  • ارسال: 443
  • جنسیت : پسر
تاپیک رو کلا به انحراف کشوندیم
البته طبق تعریف شما من لینوکسی نیستم =))
اول قوانین خدا را به طور کامل رعایت کنیم بعد انتظار حمایت کامل رو از خدا داشته باشیم.

آفلاین رسول سعیدنژاد

  • High Hero Member
  • *
  • ارسال: 3504
  • جنسیت : پسر
  • علی (ع): زَكَاةُ الْعِلْمِ نَشْرُه
تاپیک رو کلا به انحراف کشوندیم
البته طبق تعریف شما من لینوکسی نیستم =))

 ;D
بله شما لینوکسی نیستی. شما گنولینوکسی هستی  ;)
مگه میشه آدم سال‌ها پای لینوکس باشه و لینوکسی نباشه؟  :)
مسلما من راجع به کسی که تماما نمیشناسم و نمیدونم کارش تو چه حیطه‌ایه و چقدر دستش توی کاره، قضاوت نمی کنم. فقط کسایی که میشناسم و میدونم چجوریه اوضاعشون، در موردشون قضاوت میکنم. مسلما خروجی حرفام به همه برنمیگرده.
نرم افزار، یک ابزاره. برای رسیدن به هدف ازش استفاده کنید. نرم افزار هدف شما نیست :) - آزادی، بزرگ‌ترین دروغ بشریت

آفلاین jali316

  • Full Member
  • *
  • ارسال: 118
  • جنسیت : پسر
  • ubuntu 16.04
نمیدونم این کاری که انجام دادی اصولی بود یا نه.
ولی شاید دلیلی که باعث شده $USER اجرا نشه خود همین متغییر بوده. یعنی به جاش اسم یوزرت رو بنویس و تست کن.
اینی که زدی بازم کرون یوزر رو باز میکنه و چون دستور sudo یه مدت زمان خاصی فعال هست و بعد دوباره ازت برای اجرا کردن رمز میخواد پس کارت به مشکل میخوره فکر کنم.
اسکریپت کار می کنه ولی آریا با  دستور sudo کار نمی کنه بدون  دستور sudo کار می کنه اما دستور pkill aria2c ارور میده: pkill: killing pid 5386 failed: Operation not permitted
کجای کار می لنگه ؟
\********** زندگی یعنی یاد دادن و آموختن ؛ ابونتو یعنی زندگی **********/

آفلاین رسول سعیدنژاد

  • High Hero Member
  • *
  • ارسال: 3504
  • جنسیت : پسر
  • علی (ع): زَكَاةُ الْعِلْمِ نَشْرُه
اسکریپت کار می کنه ولی آریا با  دستور sudo کار نمی کنه بدون  دستور sudo کار می کنه اما دستور pkill aria2c ارور میده: pkill: killing pid 5386 failed: Operation not permitted
کجای کار می لنگه ؟

خب این pkill رو باید بذاری توی کرون یوزر. چون نیاز به اجرای root نیست. من فقط گفتم دستوراتی رو که توی یه خط مینویسی، اگه توشون دستورات ریشه‌ای هم هست، کلا اون خط رو ببر توی کرون ریشه. وگرنه خط‌های دیگه رو میتونی بذاری توی همون کرون یوزر دیگه.
هم آریا و هم دستور کیل، نیاز به root ندارن ولی وقتی قراره وابسته به دستورات روت باشن، اونارو میبری توی کرون ریشه. کیل نیازی نیست ببریش پس تو همون یوزر میذاریش. و آریا اگه بعدش دستور ریشه‌ای داره پس کل اون خط رو میبری توی کرون ریشه و قبل از دستور sudo -u user میذاری. حالا اگه دستور آریا توی اسکریپته پس باید sudo -u user رو توی اسکریپت بذاری و فقط دستور ران شدن اسکریپت رو بدی به کرون ریشه. همون طور که قبلا مثال زدم:
# 15 01  * * * /home/ubuntu/Shell\ Script\ Command/dl-script ; sudo shutdown -h nowدستور آریا توی این اسکریپت هست که اولش با sudo -u user شروع شده. ببین:
#! /bin/bash

sudo -u ubuntu aria2c -c -j1 -x16 -s16 -k 1M -d /home/ubuntu/Downloads -i /home/ubuntu/Text/Link.txt > /home/ubuntu/Log/aria2c.log 2> /home/ubuntu/Log/aria2c-error.log

اگه داخل اسکریپتت فقط آریا هست، میتونی sudo -u user رو اونجا ننویسی و توی کرون بنویسی قبل از اجرای اسکریپت. من توی اسکریپت دادم چون توی اسکریپت چند خط دیگه دارم که اونا نیاز به دستور ریشه دارن واسه همین دیگه توی کرون قبل از اجرای اسکریپت از sudo -u user استفاده نکردم. در هر صورت وقتی از sudo -u user استفاده میکنی باید دقت کنی که دستور با کاربر خودت اجرا میشه پس باید جوری در نظر بگیری که تداخلی بین دستورات ریشه‌ای و عادی پیش نیاد.
اگه بازم مشکل داشت توی اجرا، دستورات داخل کرون‌ها و دستورات داخل اسکریپت رو بذار اینجا تا ببینیم کجاش ایراد داره.
نرم افزار، یک ابزاره. برای رسیدن به هدف ازش استفاده کنید. نرم افزار هدف شما نیست :) - آزادی، بزرگ‌ترین دروغ بشریت

آفلاین jali316

  • Full Member
  • *
  • ارسال: 118
  • جنسیت : پسر
  • ubuntu 16.04
اسکریپت کار می کنه ولی آریا با  دستور sudo کار نمی کنه بدون  دستور sudo کار می کنه اما دستور pkill aria2c ارور میده: pkill: killing pid 5386 failed: Operation not permitted
کجای کار می لنگه ؟

خب این pkill رو باید بذاری توی کرون یوزر. چون نیاز به اجرای root نیست. من فقط گفتم دستوراتی رو که توی یه خط مینویسی، اگه توشون دستورات ریشه‌ای هم هست، کلا اون خط رو ببر توی کرون ریشه. وگرنه خط‌های دیگه رو میتونی بذاری توی همون کرون یوزر دیگه.
هم آریا و هم دستور کیل، نیاز به root ندارن ولی وقتی قراره وابسته به دستورات روت باشن، اونارو میبری توی کرون ریشه. کیل نیازی نیست ببریش پس تو همون یوزر میذاریش. و آریا اگه بعدش دستور ریشه‌ای داره پس کل اون خط رو میبری توی کرون ریشه و قبل از دستور sudo -u user میذاری. حالا اگه دستور آریا توی اسکریپته پس باید sudo -u user رو توی اسکریپت بذاری و فقط دستور ران شدن اسکریپت رو بدی به کرون ریشه. همون طور که قبلا مثال زدم:
# 15 01  * * * /home/ubuntu/Shell\ Script\ Command/dl-script ; sudo shutdown -h nowدستور آریا توی این اسکریپت هست که اولش با sudo -u user شروع شده. ببین:
#! /bin/bash

sudo -u ubuntu aria2c -c -j1 -x16 -s16 -k 1M -d /home/ubuntu/Downloads -i /home/ubuntu/Text/Link.txt > /home/ubuntu/Log/aria2c.log 2> /home/ubuntu/Log/aria2c-error.log

اگه داخل اسکریپتت فقط آریا هست، میتونی sudo -u user رو اونجا ننویسی و توی کرون بنویسی قبل از اجرای اسکریپت. من توی اسکریپت دادم چون توی اسکریپت چند خط دیگه دارم که اونا نیاز به دستور ریشه دارن واسه همین دیگه توی کرون قبل از اجرای اسکریپت از sudo -u user استفاده نکردم. در هر صورت وقتی از sudo -u user استفاده میکنی باید دقت کنی که دستور با کاربر خودت اجرا میشه پس باید جوری در نظر بگیری که تداخلی بین دستورات ریشه‌ای و عادی پیش نیاد.
اگه بازم مشکل داشت توی اجرا، دستورات داخل کرون‌ها و دستورات داخل اسکریپت رو بذار اینجا تا ببینیم کجاش ایراد داره.
22 15 * * * sudo -u user aria2c -c -j1 -x16 -s16 -k 5M -d /home/user/Downloads -i /home/user/Desktop/dl-list.txt -l downloadlog --log-level=notice > logdownloadaria2c ; sudo /home/user/Dialogshutdown.sh
55 06 * * * sudo -S pm-suspend
50 06 * * * pkill aria2c این هم تو کرون یوزر
\********** زندگی یعنی یاد دادن و آموختن ؛ ابونتو یعنی زندگی **********/

آفلاین jali316

  • Full Member
  • *
  • ارسال: 118
  • جنسیت : پسر
  • ubuntu 16.04
اسکریپت هم اینطوری گذاشتم نشد
#! /bin/bash

sudo -u user aria2c -c -j1 -x16 -s16 -k 5M -d /home/user/Downloads -i /home/user/Desktop/dl-list.txt -l downloadlog --log-level=notice > logdownloadaria2c
و کرون ریشه

22 15 * * * /home/user/aria2.sh ; sudo /home/user/Dialogshutdown.sh
55 06 * * * sudo -S pm-suspend
اسکریپت شات داون کار می کنه آریا نه پرمیشن اجرایی هم دادم به اسکریپت ها
\********** زندگی یعنی یاد دادن و آموختن ؛ ابونتو یعنی زندگی **********/

آفلاین رسول سعیدنژاد

  • High Hero Member
  • *
  • ارسال: 3504
  • جنسیت : پسر
  • علی (ع): زَكَاةُ الْعِلْمِ نَشْرُه
اسم کاربریت user هست؟ من مینویسم user چون باید جاش اسم کاربریت رو بذاری. اونجایی هم که USER$ هست خود بش متوجه میشه یوزر شما اسمش چیه.
نرم افزار، یک ابزاره. برای رسیدن به هدف ازش استفاده کنید. نرم افزار هدف شما نیست :) - آزادی، بزرگ‌ترین دروغ بشریت