Category: ابزار‌ها


تا حالا خیلی برام پیش اومده بود که وقتی که پشت سیستم نیستم، می خواستم کامپیوتر یک سری کار های روزمره‌ی من رو به صورت خودکار انجام بده.

مثلا دانلود شبانه، در طول تابستون که خب مشکل خاصی نداشتم، تا ساعت ۲-۳ بیدار بودم و کار هام رو انجام می‌دادم اما حالا، کمی زمانم بسته شده. دنبال یک ابزاری بودم که تمامی کارهایی که من در طول اون مدت انجام می‌دادم رو برام انجام بده. به صورت خودکار.

ابتدا دستور at که پیش فرض نصب هست به فکرم خورد. یک سری مشکلات و محدودیت هایی داشت. مثلا مجبور بودم هر روز دستی براش تعریف کنم. یا در کل مشکلات خاص خودش رو داشت.

با کمی جست‌و‌جو و پرسش و پاسخ به ابزار خط‌فرمان cron رسیدم. که دستوری به نام crontab داشت و زمان‌بندی رو به خوبی انجام می‌داد.

این ابزار خط‌فرمان در اکثر مخازن دیسترو ها موجود است. در آرچ‌لینوکس می تونید اون رو با دستور "sudo pacman -S cron" نصب کنید.

دستورات crontab :

crontab -e     برای تغییر دادن فایل crontab شما به کار می‌رود. اگر بار اول است که با این ابزار کار می کنید، فایل مربوطه را می‌سازد.
crontab -l      محتویات کنونی فایل crontab را نشان می‌دهد.
crontab -r     فایل crontab را حذف می کند.

همچنین این ابزار از مقداری که برای متغیر EDITOR تعیین شده‌است برای ادیتور استفاده می‌کند.

برای مثال اگر می خواهید که از ویرایشگر nano یا vi استفاده کند. در خط‌فرمان بزنید:

export EDITOR=vi
export EDITOR=nano

فایل crontab :

با دستور crontab -e فایل crontab را ایجاد کرده و با اضافه کردن دستورات این فایل رو تغییر بدید. برای ایجاد کردن یک زمان‌بندی جدید به صورت زیر عمل کنید.

crontab

علامت * به معنای تمامی مقادیر آن قسمت است، مثلا اگر برای قسمت هفته‌ بیایید در تمام روز های هفته آن دستور اجرا می‌شود.

مشکل sendmail :

در حالت معمولی فعالیت های cron به وسیله‌ی sendmail به کاربری که فعالیت را ایجاد کرده ارسال می‌شوند. برای جلوگیری از این ارسال دستور زیر را در خط فرمان وارد کنید.

>/dev/null 2>&1

ارجاع جهت اطلاعات بیشتر :

http://adminschoice.com/crontab-quick-reference
man crontab

خب تقریبا دو هفته پیش من یک اسکریپت رو توی جلسات اصفهان‌لاگ معرفی و شرح دادم . ولی سریع توضیح دادم و یک قسمتی از اسکریپت رو هم فراموش کردم بنویسم !(البته یه آپشن اضافه بود که توضیح میدم.) گفتم که بیام این جا بیکار نمونه اسکریپت هایی که معرفی می کنم رو این جا هم شرح بدم . نوشتن خیلی ساده تر از توضیح دادنه 🙂

این اسکریپت کارش اینه که به وسیله ی youtube-dl به صورت خودکار فقط کافیه که لینک رو بهش بدید تا خودش اتومات دانلود کنه و اون رو تبدیل به یه gif یعنی یه تصویر متحرک بکنه و بده دست شما 🙂 و یه نکته ای این که منبع اسکریپت اینجا هستش .

که به ابزار هایی که احتیاج داره یکی youtube-dl هست که در پست قبلی معرفی کردم و دیگری mplayer هست که فکر کنم پیش‌فرض توی اکثر دیسترو ها نصب هست .ترمینال

bersamm@bersam-desktop:~$ url=http://www.youtube.com/watch?v=V5bYDhZBFLA; youtube-dl --max-quality=FORMAT $url; mplayer $(ls ${url##*=}*| tail -n1) -ss 00:57 -endpos 10 -vo gif89a:fps=5:output=output.gif -vf scale=400:300 -nosound

خب خب … اسکریپت نسبتا ساده ای هستش ولی کارش درسته 🙂 .

خب از اول شروع میکنیم . ابتدا می اد و یک متغیر محیطی به اسم url تعریف می کنه … تمام کاری که شما باید انجام بدید اینه که لینک آدرس مورد نظرتون رو به url بدید … مثل نمونه بعد از این با ; سراغ دستور بعدی می ریم .

بعد می اد و با دستور youtube-dl و اپشن –max-quality=FORMAT (توی نسخه ی قبلی -b بود ولی توی اسکریپت جدید تغییر کرده.) بهترین کیفیت از کلیپ رو از متغیر $url (که همون لینک ما باشه می گیره) تا این جا ما نسخه ی flv مون رو از سایت یوتیوب دانلود کردیم . سپس نوبت به mplayer میرسه .خب حالا باید اسم کلیپ اول رو بدیم بهش … این جا از یک طرفند زیبا استفاده کرده «${url##*=}» این قسمت از کد کارش اینه که بیاد و هر چی بعد از علامت = دید رو نگه داره و بقیه رو برش بزنه . اگه دقت کرده باشید لینک های یوتیوب از یک الگوی خاصی بهره‌مند هستن . و اسم کلیپ دانلودی شما با youtube-dl دقیقا همونی هست که بعد از علامت = هست با فرمت flv .اگه می خواهید در مورد این نوع برش توی ترمینال بیشتر بدونید به این جا مراجعه کنید .

بعد از این که فایل flv رو تحویل mplayer داد نوبت به اپشن ها میرسه تا اون رو تبدیل به gif بکنه ابتدا با اپشن -ss زمان شروع برای تبدیل رو می گیره … در این جا ۵۷ ثانیه رو در نظر گرفته و با -endpos زمان انتها رو می گیره … در این ۱۰ ثانیه بعد تعریف شده . یعنی تا ۱۰ ثانیه بعد رو تبدیل میکنه بعد هم fps یعنی تعداد فریم در هر ثانیه رو تنظیم می کنیم تا فریم های اضافی رو استفاده نکنیم … این جا ۵ رو انتخاب کرده (اضافه کنم که برای مثال اکثر فیلم هایی که ما میبینیم روی ۲۴ فریم بر ثانیه هستند . بنابر این ۵ فریم بر ثانیه مقاداری کند می کنه سرعت نمایش رو … ولی توی حجم بسیار تاثیر داره) و بعد هم output که بشه نام خروجی gif .

در قسمت بعد با scale اندازه ی تصویر رو کوتاه کرد و به ۴۰۰ در ۳۰۰ پیکسل تغییر داده و در آخر هم یک آپشن -nosound تعریف کرده تا کمترین حجم ممکن رو داشته باشید .

پ‌.ن۱:اسکریپت خیلی جالبیه و حتی اگه مثلا برای من چندان استفاده نداشته باشه … حداقل یاد گرفتم که چه طوری اندازه ی تصاویر رو با mplayer تغییر بدم !!! و یا اون قسمت برش واقعا جالب بود .

خب دوستان !‌این سری با یک ابزار خط فرمان هستم . البته اول بگم که من فعلا به اوبونتو مهاجرت کردم پس سابایون فعلا نداریم . و اسم وبلاگ رو هم به لینوکس تغییر دادم بهتر هستش.

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

Youtube-dl

طریقه ی کار باهاش خیلی آسون هست .  فقط کافیه که تحت خط فرمان کد خودتون رو به صورت زیر وارد کنید :

sudo apt-get install youtube-dl $

و همچنین برای دانلود یک کلیپ فقط کافیه دستور رو + لینک کلیپ مورد نظر براش وارد کنید :

youtube-dl -b http://www.youtube.com/watch?v=G3hth9_rvfg $

و برای دریافت با بهترین کیفیت آپشن -b رو به انتهای کد اضافه شده که برنامه خودش جست و جو می کنه و بهترین کیفیت رو می گیره . برای اپشن های بیشتر –help یا -h رو بزنید :

youtube-dl --help $

که اپشن های زیادی هست و شما می تونین با توجه به کلیپی که نیاز دارید تنظیم کنید و دانلود کنید . اما مشکلی که وجود داره بسته بودن یوتیوب است که باید یک پروکسی برای خط فرمان تنظیم کرد برای این کار دستور زیر را وارد کنید :

'export http_proxy='127.0.0.1:8080 $

به جای ۱۲۷٫۰٫۰٫۱ ای‌پی مورد نظر خودتون و به جای ۸۰۸۰ هم پورت مورد نظر رو بزارید (و اگه از Freedom استفاده می کنید به همین حالت وارد کنید.)
و تمام به راحتی می توانید کلیپ های مورد نیاز خودتون رو تهیه و دانلود کنید بدون نیاز داشتن به رپیدلیچ ها و یا هر چیز دیگه ای 🙂

پن ۱ : لطفا کد ها رو کپی پیست نکنید . به خاطر این که نمایش درستی داشته باشن مجبور شدم که یک سری از کد ها رو عقب و جلو بنویسم تا درست بشند . نمی دونم این وردپرس.کام مشکلش چیه دقیقا 🙂