منبع اصلی نوشتار زیر در این لینک قرار دارد

زمان‌بندی عملیات‌های ترمینال

شاید براتون این مشکل وجود داشته که می‌خواستین فلان ساعت، یه کامندی تو ترمینال اجرا شه! (مثلا هر شب ساعت ۱۰، به یه شخصی فلان فایل ایمیل شه!) یا اینکه یه بار ساعت ۴ صبح که احتمالا پای کامپیوتر نیستین، شروع به دانلود فایل کنین و بعد ساعت ۸ صبح هم سیستم خود به خود خاموش شه. همه اینکارا با ترمینال لینوکس انجام میشه! برای انجام این‌کارها به ادامه مطلب مراجعه کنید.

ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

آریا۲ و اپت: سرعتی دوچندان

یکی از مشکلات کاربران دبیان-بیس‌ها، سرعت apt در امر طاقت‌فرسای دانلوده که باعث می‌شه خیلی‌ها سراغ مواردی مثل apt-fast برن. ما با ترکیب آریا۲ و اپت، یه دانلود کننده‌ی توپ می‌سازیم.

نکته مهم: هر دستوری که اولش علامت # رو می‌بینید به دسترسی روت نیاز داره و هر دستوری که اولش علامت $ رو داره،‌ یعنی هر کاربری توانایی اجراش رو داره و دسترسی روت لازم نیست.

۱. استخراج لینک‌ها

مسلماً بسته‌های دبیان چیزی جز فایل نیستن و apt هم این «فایل»ها رو دانلود می‌کنه. خب وقتی خودش می‌تونه دانلود کنه،‌ چرا ما نتونیم؟ خوش‌بختانه برای همچین‌کاری یه سوئیچ خوب وجود داره:

root@debian:~# apt-get -y --print-uris { install <PACKAGE> | upgrade | ... }

این سوئیچ به apt می‌گه که فقط لینک رو بنویس و بی‌خیال دانلود شو. سوئیچ y هم می‌گه که خودت تائید کن.
مثلا من guake رو امتحان می‌کنم:

root@debian:~# apt-get -y --print-uris install guake 
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  python-glade2 python-vte
Suggested packages:
  python-gtk2-doc
The following NEW packages will be installed:
  guake python-glade2 python-vte
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 201 kB of archives.
After this operation, 1,381 kB of additional disk space will be used.
'http://ir.archive.ubuntu.com/ubuntu/pool/main/v/vte/python-vte_0.28.2-5ubuntu1_amd64.deb' python-vte_1%3a0.28.2-5ubuntu1_amd64.deb 21726 MD5Sum:a0b9e19f09fa001ca3e75534a5298c51
'http://ir.archive.ubuntu.com/ubuntu/pool/main/p/pygtk/python-glade2_2.24.0-3ubuntu3_amd64.deb' python-glade2_2.24.0-3ubuntu3_amd64.deb 8744 MD5Sum:1aef0e4a843eac23ffc619bc02382f03
'http://ir.archive.ubuntu.com/ubuntu/pool/universe/g/guake/guake_0.4.4-1ubuntu1_amd64.deb' guake_0.4.4-1ubuntu1_amd64.deb 171024 MD5Sum:a24f28469f7a83debc4aed2ec6ea1515

اطلاعاتی که ما لازم داریم سه خط آخر هستن که وجه اشتراکشون //:http ابتداشونه. پس با grep فیلترشون می‌کنیم:

root@debian:~# apt-get --print-uris -y install guake | grep 'http://'
'http://ir.archive.ubuntu.com/ubuntu/pool/main/v/vte/python-vte_0.28.2-5ubuntu1_amd64.deb' python-vte_1%3a0.28.2-5ubuntu1_amd64.deb 21726 MD5Sum:a0b9e19f09fa001ca3e75534a5298c51
'http://ir.archive.ubuntu.com/ubuntu/pool/main/p/pygtk/python-glade2_2.24.0-3ubuntu3_amd64.deb' python-glade2_2.24.0-3ubuntu3_amd64.deb 8744 MD5Sum:1aef0e4a843eac23ffc619bc02382f03
'http://ir.archive.ubuntu.com/ubuntu/pool/universe/g/guake/guake_0.4.4-1ubuntu1_amd64.deb' guake_0.4.4-1ubuntu1_amd64.deb 171024 MD5Sum:a24f28469f7a83debc4aed2ec6ea1515

ولی ما فقط اون قسمتی که لینک فایل توش هست رو نیاز داریم؛ پس اون‌رو هم با cut فیلتر می‌کنیم:

root@debian:~# apt-get --print-uris -y install guake | grep 'http://' | cut -d' -f2
http://ir.archive.ubuntu.com/ubuntu/pool/main/v/vte/python-vte_0.28.2-5ubuntu1_amd64.deb
http://ir.archive.ubuntu.com/ubuntu/pool/main/p/pygtk/python-glade2_2.24.0-3ubuntu3_amd64.deb
http://ir.archive.ubuntu.com/ubuntu/pool/universe/g/guake/guake_0.4.4-1ubuntu1_amd64.deb

این‌جا cut متن رو بر اساس کاراکتر ‍' تقسیم می‌کنه. لینکی که ما لازم داریم میشه ستون دوم.
حالا لینک ها رو داریم. می‌ریزیمشون توی یه فایل به اسم Links.txt:

root@debian:~# apt-get --print-uris -y install guake | grep 'http://' | cut -d' -f2 > Links.txt

۲. دانلود بسته‌ها

برای این کار از aria2 استفاده می‌کنیم.

root@debian:~# aria2c -d /var/cache/apt/archives/ -i Links.txt -s 16 -x 16 -c

سوئیچ d مسیری که فایل‌های دانلود شده در اون ریخته می‌شن رو مشخص می‌کنه. ‍i هم مسیر لینک‌ها رو. بقیه‌ی سوئیچ‌ها هم که رایج هستن و مربوط تعداد اتصال‌ها و سرعت دانلود می‌شن.

۳. نصب بسته ها

همیشه اپت بسته‌ها رو توی مسیر /var/cache/apt/archives/ می‌ریزه. خب، ما که خودمون این کار رو با aria2 کردیم! پس دیگه apt نیازی به دانلود نداره.

root@debian:~# apt-get -y install guake
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  python-glade2 python-vte
Suggested packages:
  python-gtk2-doc
The following NEW packages will be installed:
  guake python-glade2 python-vte
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/201 kB of archives.
After this operation, 1,381 kB of additional disk space will be used.
Selecting previously unselected package python-vte.
(Reading database ... 240702 files and directories currently installed.)
Preparing to unpack .../python-vte_0.28.2-5ubuntu1_amd64.deb ...
Unpacking python-vte (1:0.28.2-5ubuntu1) ...
Selecting previously unselected package python-glade2.
Preparing to unpack .../python-glade2_2.24.0-3ubuntu3_amd64.deb ...
Unpacking python-glade2 (2.24.0-3ubuntu3) ...
Selecting previously unselected package guake.
Preparing to unpack .../guake_0.4.4-1ubuntu1_amd64.deb ...
Unpacking guake (0.4.4-1ubuntu1) ...
Processing triggers for gconf2 (3.2.6-0ubuntu2) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Processing triggers for gnome-menus (3.10.1-0ubuntu2) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu1) ...
Processing triggers for bamfdaemon (0.5.1+14.04.20140409-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for mime-support (3.54ubuntu1.1) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Setting up python-vte (1:0.28.2-5ubuntu1) ...
Setting up python-glade2 (2.24.0-3ubuntu3) ...
Setting up guake (0.4.4-1ubuntu1) ...

در ظمن اگر دیدین بسته‌های زیادی دانلود کردین و حجم زیادی رو اشغال، از شرشون خلاص بشین!

root@debian:~# apt-get clean

موفق باشین.

ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

cron و rtcwake: خواب راحت

دانلود شبانه یکی از باحال‌ترین کارهاست ولی دردسرهایی داره: باید سیستم رو روشن بذارین تا سر ساعت شروع کنه. rtcwake قراره به کمک cron این مشکل رو برای همیشه برامون حل کنه تا به‌خاطر چند گیگ ناقابل از خواب‌مون نزنیم!

راهنماهای خوبی برای دانلود شبانه وجود دارن پس ما از اول شروع نمی‌کنیم و فقط تنظیم سیستم رو این‌جا شرح می‌دیم.
نکته: rtcwake و cron هردو روی توزیع دبیان به‌طور پیش‌فرض نصبن. برای نصبش روی توزیع خودتون از مدیربسته استفاده کنین. این روش به نوع توزیع وابسته نیست.

۱. کار با rtcwake

چون کار با بسیاری از سخت‌افزارهای سیستم نیازمند دسترسی روت هست، rtcwake که از ساعت سخت‌افزاری سیستم استفاده می‌کنه طبیعتاً از این قاعده مستثنی نیست. پس باید کارهای مربوط به rtcwake رو با این سطح دسترسی انجام بدیم. قالب مورد نیاز ما برای روشن کردن سیستم سر ساعت <TIME> که بر حسب زمان محلی وارد می‌شه( سوییچ l- این کار رو انجام می‌ده) به این صورته:

root@debian:~# rtcwake -l -m no -t $( date +%s -d <TIME> )

سوئیچ m به rtcwake می‌گه بعد از این که سیستم رو تنظیم کردی، هیچ‌کاری نکن(مثل خاموش کردن، حالت خواب و …). date خروجی‌ش رو به rtcwake می‌ده که واحدش ثانیه‌ست و فاصله‌ی زمان داده‌شده رو با مبدأ زمانی یونیکس مشخص می‌کنه. مثلا ما می‌خوایم ساعت ۱ شب سیستم روشن بشه:

root@debian:~# rtcwake -l -m no -t $( date +%s -d 'tomorrow 01:00' )

کلمه‌ی tomorrow‍ به date می‌فهمونه که منظور ما ساعت ۱‍ شبی‌‍ه که از ساعت ۲۴ گذشته باشه؛ یعنی اگر این دستور بعد از ساعت ۱۲ شب اجرا بشه روشن کردن سیستم رو به فردا شب موکول می‌کنه! پس دقت کنین که الان ساعت چنده.

۲. افزودن به cron

خود cron یک‌سری کلمه داره که رویداد خاصی رو مشخص می‌کنه. مثلا reboot به معنی «هر وقت سیستم روشن شد»‍ه. چه خوب! ما از این قابلیت استفاده می‌کنیم و به cron می‌گیم که هروقت سیستم روشن شد برای دانلود شبانه تنظیمش کنه. این طوری دیگه نیازی به اجرای دستی rtcwake نیست.
معمولا چون cron خیلی از مسیرهای رایج رو توی متغییر محیطی PATH نداره مجبوریم خودمون دستی مسیر هر کدوم از اجرایی‌ها رو وارد کنیم.
توجه! مسیرهایی که این‌جا برای date و rtcwake استفاده شدن ممکنه روی سیستم شما فرق کنن. با دستور which می‌تونید از مسیر هر دستوری مطلع بشین.

اول cron مربوط به کاربر ریشه رو باز می‌کنیم:

root@debian:~# crontab -u root -e

حالا خط زیر رو واردش می‌کنیم. توجه داشته باشین که <TIME> رو با زمان دلخواهتون عوض کنین:

@reboot /usr/sbin/rtcwake -l -m no -t $( /bin/date +%s -d <TIME> )

و در انتها سیستم رو ریبوت کنین تا rtcwake ساعت رو تنظیم کنه.

ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

آشنایی با job scheduling در لینوکس

گاهی اوقات نیاز است کارخاصی در زمان خاصی و به صورت دوره‌ای انجام شود،
مثلا گرفتن بکاپ از پایگاه داده، ارسال ایمیل و خبرنامه و کارهایی نظیر
این. برای انجام این کار در ویندوز از Schedule Task استفاده می شود. در
سیستم عامل‌ های متن باز نظیر لینوکس و یونیکس برای این منظور ابزارهایی بنام
Cron و at وجود دارد که در ادامه به بررسی آن می پردازیم.

دانلود آموزش آشنایی با job scheduling در لینوکس
ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

آشنایی با job scheduling در لینوکس

نوشته شده توسط حجت طاهری.

  گاهی اوقات نیاز است کارخاصی در زمان خاصی و به صورت دوره‌ای انجام شود، مثلا گرفتن بکاپ از پایگاه داده، ارسال ایمیل و خبرنامه و کارهایی نظیر این. برای انجام این کار در ویندوز از Schedule Task استفاده می […]

نوشته آشنایی با job scheduling در لینوکس اولین بار در لینوکس سیزن پدیدار شد.

ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

من و راسبری-پی و دانلودهای شبانه

یه دونه راسبری پی خریدم که تو خونه گذاشتم و باهاش عشق دنیا رو می‌کنم. چند وقتی بود که می‌خواستم مثل این یادداشت بیت نیم‌سوز یه مدیر دانلود روش راه بندازم. چیزی که هدفم بود این بود که (۱) خیلی راحت بتونم فایل‌هام رو به لیست دانلودهام اضافه کنم (۲) دانلود خیلی اتوماتیک و تمیز […] ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

Crontab Generator: راه حلی برای سادگی در ایجاد Cron Jobs

تقریباً اوّلین و اصل‌ترین راه‌کار sysadmin های گنو/لینوکس و کلاً کاربران گنو/لینوکس برای اتوماتیک کردن کاراشون استفاده از Cron هست. این کار می‌تونه یه یادآوری کوچیک باشه یا یه کار پر خطر سر یه دیتابیس! امّا سختی نحو Cron Job‌ها از اصلی‌ترین و بزرگ‌ترین معایب و موانع استفاده از این برنامه هست. حالا گروه easycron […] ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

۶ Linux Crontab Command Examples

۶ Linux Crontab Command Examples.
ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

پشتیبان‌گیری و بیشتر از آن با rsync

rsync یک ابزار مستقل از پلتفرم است که تحت سیستم‌عامل‌های لینوکس، مک و ویندوز (البته با Cygwin) قابل اجراست و به راحتی می‌تواند در ترکیب با cron و SSH  در یک اسکریپت استفاده شود. این موضوع باعث می‌شود این برنامه، یکی از ابزارهای ضروری  در جعبه‌ابزار هر فرد باشد؛ حتی اگر از آن برای پشتیبان‌گیری استفاده نکند. یکی دیگر از مزایای rsync این است که این ابزار در اغلب توزیع‌های بزرگ گنو/لینوکس بصورت پیش‌فرض قرار دارد. پشتیبان‌گیری […] ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

Cron Vs Anacron

Cron Vs Anacron: How to Setup Anacron on Linux With an Example.
ادامه مطلب