بایگانی برچسب: s

چجوری برای سایت the coding love‌ کانال تلگرام درست کردم

سایت The Coding Love رو قبلا معرفیش کردم، یک سایت جمع و جور که گیف‌های گیکی میذاره که هرکسی از اون گیف‌ها سردر نمیاره. من هم به این سایت علاقه زیادی دارم و هر روز چکش میکنم ولی مساله‌ای که وجود داشت این بود که گاهی این سایت توی یک ساعت چندتا گیف جدید میذاشت و گاهی هم چند روز خبری نبود که یکم این مورد من رو اذیت میکرد. دیدم الآن که چند وقتیه بازار کانال‌های تلگرامی گرم شده بد نیست که بگردم و ببینم برای این سایت کانال تلگرامی وجود داره یا نه. کمی گشتم و یک کانال تلگرام تونستم براش پیدا کنم ولی این کانالی که پیدا کردم و آدرس دقیقش هم یادم نیست یک مشکل داشت و اون هم این بود که فقط لینک گیف‌های جدید رو میذاشت و باز هم نیاز بود چندتا کلیک انجام بدم و از داخل مرورگر گیف ها رو بینم که اصلا برام جالب نبود. به همین خاطر تصمیم گرفتم یک کانال درست کنم که مطالب داخلش توسط یک بات به صورت خودکار گذاشته میشه و گیف‌ها هم مستقیما داخل کانال گذاشته شده باشن و راحت ببینمشون. خب بریم ببینیم چه کارها کردم!!!

ادامه خواندن چجوری برای سایت the coding love‌ کانال تلگرام درست کردم

اسکریپت دریافت ۵۰ فیلم آخر گانول

اسکریپ از کار افتاده

 

متاسفانه چند وقته که سایت yts.to تعطیل شده و تیم YIFY دیگه فیلمی رو رلیز نمیکنه. پس فعلا به نظر میاد تنها گزینه موجود برای دانلود فیلم سایت گانول هست (جای خوب دیگه‌ای سراغ دارین خوشحال میشم بگین). برای راحتی خودم یه اسکریپت نوشتم که هر یک ساعت یکبار میاد و لیست ۵۰فیلم آخر گانول رو میگیره و به همراه لینک دانلودشون میذاره توی یک صفحه تا بدون دردسر بتونم رلیزهای جدید گانول رو ببینم. در حال حاظر هم اون صفحه رو میتونین تو این آدرس ببینین.

 

ادامه خواندن اسکریپت دریافت ۵۰ فیلم آخر گانول

تولید تمام پسوردهای ممکن nکاراکتری با بش

قبلا اینجایه کد نوشتم که پسورد میگیره و هش میکنه. و برای داشتن پسورد هم از یک سایت تولید پسورد استفاده کردم، اما با خودم گفتم چرا خودم یه چیزی ننویسم که پسورد تولید کنه؟! و در نتیجه…

ادامه خواندن تولید تمام پسوردهای ممکن nکاراکتری با بش

اسکریپت انتقال فایل/فولدر بین هاست و سرور

خب، خلاصه حرفم رو میگم. این اسکریپت ساخته شده تا انتقال حجم زیادی از فایل‌ها و فولدرها رو به صورت اتوماتیک انجام بده و با همون ساختار فایل‌ها و فولدرها در مبدا، اون‌ها رو در مقصد قرار بده. میدونم برای این کار برنامه‌های رایگانی وجود داره ولی این اسکریپت بعد از انتقال فایل‌ها حجم فایل‌ها رو به بایت با مبدا چک میکنه میکنه و اگر حجم یکسان نبود دوباره فایل رو دریافت میکنه. و در پایان هم ساختار فایل‌های مبدا رو با ساختار فایل‌های مقصد چک میکنه تا از انتقال کامل همه اطلاعات اطمینان کسب کنه. این اسکریپت چون در باطن از برنامه‌های مدیریت دانلود استفاده میکنه حداکثر سرعت انتقال رو بهتون میده و امکان استفاده از آپشن‌های اضافه رو هم بهتون میده. برای مثال میتونید سرعت انتقال رو روی مقدار ثابتی تنظیم کنید تا سرور مبدا از دسترس خارج نشه.

 

چند نکته درباره برنامه:

– دوستانی که نگران امنیت برنامه هستند، من یک کد در اختیارتون قرار میدم و توضیحات لازم برای اجرای کد رو هم بهتون میدم تا از امنیت برنامه اطمینان کسب کنید.
– فایل‌های مبدا باید از طریق http/ftp قابل دانلود باشن
– مقصد حتما باید یک سرور لینوکسی باشه و دسترسی روت بهش داشته باشید چون نیاز به نصب چند برنامه برای کار کردن این کد هست
– در مبدا هم نیاز به یک اکانت ftp که روی پوشه‌ای که قصد انتقال اطلاعات داخلش رو داریم نیاز هست
– در حالات خیلی خاص که در عمل کمتر از یک درصد احتمال وجود داشتنش هست اسکریپت بعضی از فایل‌ها با اسم خاص رو نمیتونه انتقال بده، برای مثل فایلی که اسمش با … تموم شده باشه که البته همونطور که گفتم در عمل همچین فایلی نخواهید داشت، ولی اگر داشتید کد در انتها در یک فایل لیست لینک‌هایی که موفق به دانلودشون نشده رو بهتون میده تا به صورت دستی فایل‌ها رو انتقال بدید.

 

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

 

برای خرید این کد، به این صفحه مراجعه کنید.

دانلود فیلم به شکل گیکی، دانلود خودکار فیلم از YIFY روی کامپیوتر

فکر کنم همینکه یه بخش برای معرفی فیلم دارم نشون بده که اهل فیلم دیدنم و سایت مورد علاقم هم برای دانلود yts.to هست که رلیزهای YIFY توش برای دانلود قرار داره. گاهی که منتظر اومدن یک فیلم هستم خیلی واسم اعصاب خورد کنه که هی هر روز چک کنم ببینم اون فیلم برای دانلود اومده یا نه بعد اگه اومده بود تورنتش رو مستقیم کنم و لینک دانلودش رو از رو سرور خودم بردارم و بذارم تو لیست دانلودهام. برای همین گفتم بیام این فرایند رو خودکار کنم! اما قبل شروع کار بگم که اگه شما هم میخواین دقیقا عین کار من رو انجام بدین لازمه تا اول Deluge رو روی سرورتون نصب کنین و مثل من هم دانلوداتون رو انجام بدین. خب بریم وارد جزئیات کار بشیم!

ادامه خواندن دانلود فیلم به شکل گیکی، دانلود خودکار فیلم از YIFY روی کامپیوتر

افزایش بازدید وب سایت با آی پی واقعی از شبکه تور

اگه صاحب وبلاگ یا وب سایت هستید حتما میدونید که یکی از عواملی که رو رنک گوگل تاثیر گذار هست تعداد بازدیدها هست. راه هم برای افزایش بازدید زیاده که معمولا هم هزینه ی زیادی دارن. اما میخوام یه ترفند ساده بهتون معرقی کنم که باهاش به راحتی و با استفاده از شبکه تور میتونید کلی بازدید بدست بیارید. تنها پیش نیاز این کار یه سرور لینوکسی هست یا کامپیوتر خودتون که اینترنت درست و حسابی داشته باشه و روش یه توزیع لینوکسی نصب باشه. البته وبلاگ یا وب سایتتون هم نباید از سرویسی مثل Cloud Flare استفاده کنه که آی پی های تور رو بلاک میکنن. اگه پیش نیازها رو دارین و کلی بازدید میخواین در ادامه کار با من همراه باشید!!!

 

ادامه خواندن افزایش بازدید وب سایت با آی پی واقعی از شبکه تور

ترکوندن رم و سی پی یو با یه بش اسکریپت

کلا از وقتی با بش اسکریپت آشنا شدم به طور کل دارم یه جور دیگه با کامپیوتر کار میکنم 😀 یه بش ساده نوشتم که هیچ کار انجام نمیده جز اینکه رم و سی پی یو رو تا ته پر میکنه و خودم که بعد از اجرای این بش مجبور شدم سخت افزاری سیستمم رو ری‌استارت کنم. برای نوشتن این بش اومدم به تعداد هسته‌های سی پی یو حلقه بینهایت درست کردم (البته میشه بیشتر هم حلقه درست کرد ولی حداقل تعداد حلقه‌ها باید به تعداد هسته‌های سی پی یو باشه) و اسکریپت رو به شکلی تنظیم کردم که حلقه‌ها رو به صورت موازی اجرا کنه و به این شکل هرکدوم از حلقه‌ها روی یکی از هسته‌های سی پی یو انجام میشه و لود اون هسته رو به صد درصد میرسونه. اما برای رم کاری که کردم این بود که یه متغییر تعریف کردم و گفتم که تو هر بار اجرا شدن این حلقه‌ها اون متغییر رو چندبار دوباره تو خودش بریزه. کد نهایی هم برای سیستم من که سی پی یوم دو هسته داره این شد:

z=q
while true; do
	z=$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z
done &
while true; do
	z=$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z
done

 

که این کد رو تو یه فایل با پسوند sh ذخیره کردم و با دستور

chmod +x file.sh

 

بهش قابلیت اجرایی دادم و با دستور

./file.sh

 

اجراش کردم و شاهد لود صد درصدی سی پی یو و رم بودم 😀 کد هم کلیاتش نکته خاصی نداره. اما در مورد خط

z=$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z

 

باید بگم که این خط وظیفه پر کردن رم رو داره. چون در ابتدای کد تو متغییر z فقط کاراکتر q رو قرار دادیم ولی به محض اینکه به حلقه میرسه ۲۲تا کاراکتر q توی متغییر z ذخیره میشن و تو بار دوم اجرا شدن حلقه ۴۸۴تا کاراکتر q توی متغییر z ذخیره و میشن و الی آخر. حالا این رو هم درنظر بگیرین که دوتا حلقه به صورت همزمان و چندصد بار در ثانیه دارن اجرا میشن! با این کار رم به سرعت پر میشه 🙂 تو آخر خط ۴ هم یک کاراکتر & قرار داره که باعث میشه دوتا حلقه به صورت موازی اجرا بشن و اگه اون کاراکتر & رو نذاریم فقط یک هسته سی پی یو لودش میره رو صد. اگه میخواین این کد رو رو روی سیستمی مثلا با سه هسته پردازش اجرا کنین (البته با مسئولیت خودتون!) باید خط‌های دو و سه و چهار رو کپی کنید و آخر خط چهار پیست کنید تا سه‌تا حلقه به صورت موازی اجرا بشن و هر سه هسته لودشون بره رو صد.

z=q
while true; do
	z=$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z
done &
while true; do
	z=$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z
done &
while true; do
	z=$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z
done

 

آپدیت:

برای اینکه مجبور نشین تو یه فایل جداگانه دستورات رو قرار بدین، میتونین دستورات رو توی یک خط بنویسین و مستقیم تو ترمینال وارد کنید تا سیستم بترکه. برای مثال رو سیستم من دستور به این شکل میشه:

z=q && while true; do z=$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z; done & while true; do z=$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z$z; done

 

ساخت لیستی از پسوردهای هش شده

حوصلم سر رفته بود گفتم یه اسکریپت بنویسم که یه سری پسورد بهش بدیم و هششون رو بهمون بده! البته اگه سایت قابل قبولی دیتابیسش رو بدست آوردین دنبال این نباشین که با این روش بتونید پسوردهای هش نشده رو بدست بیارین چون سایت‌های درست حسابی از الگوریتم سالت هم استفاده میکنن که کار رو حسابی سخت میکنن! البته اگه به دیتابیس فیس نما دسترسی پیدا کردین راحت میتونین با این روش به اصل پسوردها برسین :)) خب بریم سراغ اسکریپت! کاری که این اسکریپت میکنه خیلی سادست! به اسکریپت یه فایل میدیم که تو هر خطش یه پسورد و جود داره و اسکریپت دونه دونه پسوردها رو میخونه و هششون میکنه و هش رو به همراه اصل پسورد درکنار هم در یک فایل جدید ذخیره میکنه 🙂 کد اسکریپت اینه، که من فرض میکنم شما اون رو با اسم md5.sh در پوشه home ذخیره کردین.

 

declare -i n
n=1
while [ $n -lt 11 ]; do
        a="$(head -n $n passwords.txt | tail -1 | tr -d '\n' | md5sum)"
        a=$a"$(head -n $n passwords.txt | tail -1)"
        echo $a >> md5_hashed_pass.txt
        n=n+1
done

 

بعد از ذخیره کردن اسکریپت با این کد بهش قابلیت اجرایی میدیم:

chmod +x md5.sh

 

قبل از اجرا کردن اسکریپت نیاز داریم تا یه سری پسورد داشته باشیم. من برای تولید پسورد تصادفی از این سایت استفاده کردم و باهاش ۱۰تا پسورد تصادفی تولید کردم. اینم لیست پسوردها:

dATbiRfe3A
qv1jc3nrL1
D3KE0l4hXK
ZdKNZYiPdV
RuUDqMPdeb
BCsymPThp3
fRcMg90R9Q
XXwhBHsc52
M4ptoRQ2sn
jMcmOMPn5O

 

و این پسوردها رو در پوشه home در فایلی به اسم passwords.txt ذخیره کردم. حالا اسکریپت رو با دستور

./md5.sh

اجراش میکنم و خروجی اسکریپت تو یه فایل به اسم md5_hashed_pass.txt ذخیره میشه. برای ۱۰تا پسورد من محتوای فایل خروجی این هست:

6987404a8b25b210092d34d3a4099128 -dATbiRfe3A
94112bbf50b7c5221d283a812bc4416f -qv1jc3nrL1
c911472169610dc0eb1a883b5ad33148 -D3KE0l4hXK
65ca15681092ff48f82881d041be99c4 -ZdKNZYiPdV
64aa4dc460ccea292d0513aae8e099bd -RuUDqMPdeb
61203cf80c95f56293e38075cd746407 -BCsymPThp3
ad9648522a71fb8d43654dfc03a26098 -fRcMg90R9Q
0ac7e69b159016281db5882cef1822a9 -XXwhBHsc52
caf660424941472f5a16bbc79cf42772 -M4ptoRQ2sn
78814e5c3333e0530c849a08b35a0763 -jMcmOMPn5O

 

همونطور که میبینین در هر خط ابتدا هش شده پسورد که با الگوریتم md5 تولید شده قرار داره و بعد از اون هم خود پسورد. اما ببینیم هر خط این اسکریپت چیکار میکنه!

 

declare -i n: متغییر n رو به عنوان یک متغییر عددی تعریف میکنیم.

 

n=1: و داخل این متغییر مقدار 1 رو ذخیره میکنیم.

 

while [ $n -lt 11 ]; do: یه حلقه درست میکنیم تا ۱۰بار عملیات خوندن خطوط رو انجام بده و درواقع ۱۰بار کدهای بین این خط و خط آخر یعنی done رو انجام میده. دقیق کنید که حلقه while تا زمانی که شرط جلوش درست باشه انجام میشه! و اینجا شرطش این هست که محتوای متغییر n کوچکتر از 11 باشه. و با توجه به اینکه n برابر با 1 هست و در انتهای هر بار انجام شدن حلقه (خط n=n+1) یک واحد به متغییر n اضافه میشه پس این حلقه ۱۰ بار انجام میشه. اگه خواستین تعداد بیشتری پسورد رو هش کنید حتما مقدار 11 رو تغییر بدید. مثلا اگه خواستید ۲۰تا پسورد رو هش کنید مقدار 11 رو به 21 تغییر بدین.

 

a=”$( )”: این خط میاد میگه خروجی دستورات داخل پرانتز رو داخل متغییر a بریز. اما دستورات داخل پرانتز چیکار میکنن؟ head -n $n passwords.txt | tail -1 میاد میگه خط nام فایل پسوردهارو برو بخون. اما هربار که یک پسورد از فایل پسوردها خونده میشه یک کاراکتر \n هم اضافی خونده میشه. برای حذف این کاراکتر اضافی خروجی رو با | به tr -d ‘\n’ میدیم تا اون کاراکتر اضافه آخری را پاک کنه و مجددا با | خروجی رو به دستور md5sum میدیم تا پسورد رو برامون هش کنه! و اگه نفهمیدین چی شد این خط میاد خط nام فایل پسوردها رو میگیره و هش شدش رو تو متغییر a میریزه!

 

a=$a”$()”: این میاد میگه درانتهای متغییر a که حاوی هش هست خود پسورد رو هم قرار بده.

 

echo $a >> md5_hashed_pass.txt: حالا ما پسورد و هشش رو در متغییر a داریم و با این دستور محتوای متغییر a رو تو فایل خروجی ذخیره میکنیم.

 

خب این توضیحات به نظرم کافیه! اگه قسمتیش رو خوب متوجه نشدین حتما کامنت بذارید 🙂

محاسبه حداکثر مقدار دانلود شبانه با بش اسکریپت

همیشه واسم سوال بود که من چقدر توی یک شب میتونم دانلود کنم… چون عملا تا حالا نشده که دانلودم تا صبح تموم نشه! خب راه معمولی اینه که تا میتونم فایل بذارم برای دانلود و صبح ببینم چقدرش دانلود شده. ولی اگه مثل من هاردتون تا خرخره پر بود چیکار میکردین؟ احتمالا میگفتین یه فایل کم حجم رو بذارم برای دانلود و ببینم چقدر طول میکشه تا دانلود بشه بعد حساب کنم که تا صبح چقدر میتونم دانلود کنم… ولی اصلا با این راه حل حال نمیکنم!!! به همین خاطر تصمیم گرفتم یه بش اسکریپت بنویسم که به صورت تقریبی محاسبه کنه چقدر توی یک شب میتونم دانلود کنم. اول قدم اینه که با روشی که من فایل‌هام رو دانلود میکنم آشنا بشین، پس این تاپیک تو انجمن اوبونتو فارسی رو اول بخونید تا با روش دانلود من آشنا بشین. خب حالا که میدونید قراره چجوری دانلود بکنم میریم سراغ اسکریپت :)) تو پوشه Home یه فایل به اسم dl.sh ایجاد میکنیم و داخلش این کدها رو قرار میدیم:

 

declare -i n
n=0
while true; do
	aria2c -c -x16 -s16 -k 1M -m10000 --retry-wait=1 http://cachefly.cachefly.net/100mb.test
	n=n+100
	a=$n"MB"
	echo $a > size.txt
	rm 100mb.test
done

 

 

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

 

chmod +x dl.sh

 

و برای اینکه این اسکریپت اجرا بشه تو کرون تب در زمانی که شبانه شروع میشه این دستور رو میزنیم:

 

./dl.sh

 

خب کار تموم شد و صبح که بیدار بشیم تو پوشه Home یه فایل به اسم size.txt قرار داره که توش نوشته شده شب گذشته چقدر تونستیم دانلود کنیم 😀 ولی یه نگاهی هم بندازیم که این بش اسکریپت دقیقا چیکار میکنه…

 

declare -i n: میگیم متغییر n رو به عنوان یک متغییر عددی بشناس که روش میشه عملیات ریاضی انجام داد. (خودمم شاخ در آوردم که میشه تو بش اسکریپت متغییر تعریف کرد!)

 

n=0: توضیح نداره دیگه!

 

while true; do: با این دستور ما یک لوپ یا حلقه بینهایت درست میکنیم و دستوراتی که بین این خط تا خط آخر یعنی done قرار دارن بینهایت بار اجرا میشن.

 

aria2c: درواقعی خطی که این عبارت آغازش هست وظیفه اصلی رو به عهده داره! تو این بش من درواقع اومدم و با دانلود چند باره یک فایل محاسبه کردم که توی یک شب چقدر میشه دانلود کرد. فقط مساله اینه که از چه لینکی استفاده کردم؟ من از فایل‌هایی که cachefly قرار داره تا دانلود کنیم و سرعت دانلودمون رو محاسبه کنیم استفاده کردم. کش فلای سه فایل با سایزهای یک مگ، ده مگ و صد مگ رو قرار داده برای تست سرعت. من از فایل صد مگی استفاده کردم. چون من تقریبا همیشه فایل‌هایی که دانلود میکنم بالای صد مگ هست (۹۰٪ من فیلم دانلود میکنم) و ساختار aria2c هم تو این بش اینه که هرچی حجم یک فایل بیشتر بود کانکشن بیشتری بساز وسرعت بالاتری داشته باش پس انتخاب این فایل صد مگی کاملا معقول بود.

 

n=n+100: خب بعد از اتمام دانلود ما تونستیم صد مگ فایل رو دانلود کنیم پس به متغییر n صد واحد اضافی میکنیم که نشون میگه صد مگ دانلود علاوه بر دانلودهای قبلی با موفقیت به انجام رسیده.

 

a=$n”MB”: با این دستور میگیم محتویات متغییر n رو بریز توی متغییر a و آخرش هم عبارت MB رو اضافه کن. چی شد!

 

echo $a > size.txt: با این دستور اگه فایلی به اسم size.txt وجود نداشته باشه ایجاد میشه و محتویاتش از بین میره و مقدار متغییر a داخلش قرار میگیره.

 

rm 100mb.test: فایلی رو که دانلود کردیم پاک میکنه چون قراره دوباره دانلود بشه 😀 یکی دیگه از دلایل که از فایل صدمگی استفاده کردم این دستور بود. چون این دستور زمان میبره حالا هر چقدر هم کم باشه (فکر کنم نزدیک به یک ثانیه زمان میبره) و خب اگه فایل یک مگابایتی میذاشتیم برای دانلود این دستور ممکن بود هزار بار و یا بیشتر اجرا بشه و این یعنی از دست دادن هزار ثانیه که تقریبا میشه یک ربع و این دقت کارمون رو میاره پایین.

 

done: که همونطور که گفتم میگه دوباره برو حلقه رو از اول اجرا کن 🙂

 

اما نتیجه این دستورات زیبا روی سیستم خودم… دیشب این بش اسکریپت رو گذاشتم اجرا بشه و نتیجش این فایل شد:

 

bash_dl

 

 

بعله… من دیشب تونستم ۴/۷ گیگ دانلود کنم. ولی تو پوشه Home یه فایل تست بود که کامل دانلود نشده بود برای اینکه ببینم چقدرش دانلود شده ترمینال رو باز کردم و کد زیر رو زدم تا دوباره دانلودش شروع بشه و ببینم چقدرش دانلود شده:

 

aria2c -c http://cachefly.cachefly.net/100mb.test

 

و دیدم نوشته که ۹۶مگابایت از این فایل صد مگابایتی دانلود شده. پس من این رو تقریبا صد مگابایت در نظر میگیرم و این یعنی من شب گذشته ۴/۸گیگ دانلود کردم :)) ولی یه نکته دیگه! من در عمل فایل‌های بالای صد مگ دانلود میکنم و چندتا فایل رو هم به صورت همزمان دانلود میکنم و این یعنی سرعت دانلود بیشتر. پس میتونم راحت بگم من میتونم شبی ۵گیگ دانلود کنم… 😀 تا دیداری دگر بدرود :))