چرا گنو/لینوکس رو دوست دارم: ساخت لینک به فایل آخرین شماره پادکست

جادی می شه یک لینک توی سایتت درست کنی که همیشه به آخرین فایل پادکست رادیو گیک اشاره کنه؟

کار که نشد نداره. خب از نظر من RSSها درست شدن برای این ولی شاید یکی بخواد یک شورتکات داشته باشه روی گوشی اش که هر وقت فشار داد مشغول دانلود / پخش رادیوگیک آخر بشه. برای ما هم یک لینوکس-بازی جذابه. خب اول پیش فرض ها!

۱- من همه فایل ها رو توی مسیر public_html/audio آپلود می کنم
۲- اسم فایل همیشه اینطوری است: jadi-net_radio-geek_014_nofooze_ettelaat.mp3 که تیکه اولش ثابته

پس کافیه همه فایل های اون مسیر رو بگیرم:

 find /home/jadi/public_html/audio/ -type f -name "jadi-net*mp3"

و بعد به ترتیب حروف الفبا مرتبشون کنم که آخری بیافته از همه پایینتر:

 find /home/jadi/public_html/audio/ -type f -name "jadi-net*mp3" | sort

و در نهایت خط آخرش رو جدا کنم:

 find /home/jadi/public_html/audio/ -type f -name "jadi-net*mp3" | sort | tail -1

و حالا اسم جدیدترین فایل رو دارم. در لینوکس چیزی هست به اسم سافت لینک که یک چیزی است تا حدی شبیه شورتکات. کافیه با بالایی یک سافت لینک درست کنم توی یک مسیر ثابت:

 ln -s `find /home/jadi/public_html/audio/ -type f -name "jadi-net*mp3" | \
        sort | tail -1` /home/jadi/public_html/radiogeek.mp3

و کافیه این رو بذارم توی یک کرون تب تا هر روز ساعت ۲ ظهر یکبار اجرا بشه. با اینکار آخرین شماره پادکست همیشه از این آدرس در دسترس خواهد بود: http://jadi.net/radiogeek.mp3 (:

  • بالاخره یه “چرا گنو/لینوکس را دوست دارم” جدید!
    این دستور tail هروقت لازمم میشه یادم میره! مجبور میشم از tac و head استفاده کنم!
    راستی آخرین مدت کامل نیفتاده

    • اوه! منظورم از “مدت”، “کدت” بود!

      • جادی

        علیرضا: به افتخارت یک دونه چرا لینوکس رو دوست دارم خیلی باحال خیلی طولانی گیکی هم نوشتم (: این رو هم اصلاح کردم. اولش متوجه نشدم در نتیجه خوب شد که گفتی منظورت «کدت» بوده‌(:

        • پس قراره قشنگ حال بکنم! اصلا عاشق این “چرا گنو/لینوکس را دوست دارم”هات هستم من!

  • MrGee

    جالب بود.
    فقط به جای ‎-name می شد از ‎-ctime و ‎-mtime استفاده کرد تا به اسم فایل وابسته نباشه.

  • arvin

    از اینجا هم میشه آخرین پادکست رادیو گیک رو گوش داد:
    http://bit.ly/PZMrIf

  • امید

    سلام
    راستش من دقیقا نفهمیدم. تو اینکارو رو سرور انجام میدی مگه اشتراکی نیست ؟
    به هر حال راه حل خیلی ساده تر (و فکر می کنم کاراتری) داره
    کافیه لینک هر کدوم از فایل های رادیوتو با یک آی دیه (auto increment) ساده بذاری تو DB و تو این آدرسی که گذاشتی یه اسکریپت ساده با یک کوئری ساده بذاری که آخرین فایلو بخونه و مثلا redirect کنه
    البته این ساده ترین شکلش بود می تونه امن تر از این هم باشه
    فکر کنم یک کوئری ساده کارایی بیشتری از گشتن فایل ها داشته باشه نه؟

    • جادی

      امید: سرور اشتراکی است ولی خب من توی دایرکتوری خودم می گردم دیگه.
      اونی که تو گفتی نیازمند تغییر توی همه چیزه. یعنی من بیام هر بار که رادیو منتشر می کنم یک چیزی هم در دیتابیس وارد کنم و بعد کوئری بزنم. خوبی این راه حل که بالا نوشتم اینه که فقط «پسینی» است یعنی هیچ تغییری در گذشته یا روند فعلی لازم نداره.
      در مورد کارایی بدون شک حق با توئه و کوئری زدن به دیتابیس بسیار بهینه تر از گشتن فایل ها است. البته در نهایت بحث فشار یک هزارم به سرور و یک میلیونیوم به سرور است.

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

  • علی وارسته

    واااااااااااااااااااای
    جادی جادی
    اصلا نمی تونم حال الانمو توصیف می کنم
    تازه من لینوکس رو کشف کردم
    کارها چقدر باهاش راحتههههههه
    تبدیل فایل .bin به iso در سه سوت
    دانلود فایل ها خیلی کارارای دیگه
    واقعا محشره
    حالا من این کارا رو، روی سرور سایت واسه کارای خود سایت انجام دادم
    واقعا متقاعدم کرد که حتما یه نسخه دانلود کنم و رو سیستمم هم نصب کنم
    ممنون میشم اگه راه نماییم کنی که برای سیستم خونگی چی نصب کنم بهتره (اسمشون رو بگی کافیه دانلود و بقیش با خودم)

    • kiAna

      واسه سیستم خونگی/لپ‌تاپ اینو نصب کنید: http://ubuntu-book.org/download/ubuntu-book-1204-01.pdf
      توی تست سایت زیر هم شرکت کنید. یک چندتایی پیشنهاد اخر کار بهتون میده:
      http://www.zegeniestudios.net/ldc/

      • جادی

        منم موافقم که کاملا معقوله که برای شروع کار خونگی از چیزی مثل اوبونتو استفاده کنی (:
        ubuntu.com

        • علی وارسته

          مرسی جادی
          مرسی کیانا

  • Ham Rah

    سلام

    مرسی جادی جان واقعا روشی که برای این پیشنهاد من ارائه کردی عالی و بی نظیر بود.

    آخرین پادکست پیدا میشه و بعد کپی میشه؟ اصلا فایل mp3 زیر وجود خارجی داره یا نه؟

    http://jadi.net/radiogeek.mp3

    • جادی

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

      اون فایل در اصل وجود خارجی نداره. مفهوم «لینک» در لینوکس/یونیکس چیزی شبیه شورتکات ویندوز است با این اختلاف که شورتکات فقط یک فلش است که به یک فایل اشاره می کنه ولی لینک شبیه یک آینه / شبح است که هر بار باهاش کار کنی انگار اون فایل اصلی رو ادیت کردی مثلا.

  • kiAna
    • جادی

      مشکلی نیست (: توضیه می شه حین استفاده از فیلترشکن برای عمه، پدر، مادر، فرزند و غیره فیلترچی دعا کنین که شاید بخشی از فحش ها برطرف بشن (: به هرحال هرکس بر اساس سطح شرفش یک شغلی داره دیگه (: یکی هم این وسط سانسورچیه.

  • Ham Rah

    آره انصافا روش هوشمندانه ای هست.

    من تعجب میکنم که اگر وجود خارجی نداره چطوری not found نمیاره؟

    به قول خودت اون شبح / آینه کجا ایجاد میشه رو RAM؟ اگر سرور ریبوت بشه و دوباره بالا بیاد لینک غیر فعال میشه؟

    • جادی

      وجود خارجی که داره… فکر کنم یک سوء تفاهم شده. این یک فایل است که اشاره یم کنه به یک فایل دیگه. ولی مثل پروندن به اون فایل نه. واقعا خودش یک لینک واقعی است به یک فایل دیگه. می شه همین رو ادیت کرد یا کپی یا هر چی و در حالت معمول (سافت لینک) روی دیسک جای خاصی نمی گیره چون فقط یک فلش است به اون یکی . مثل اینکه یک فایل دو جا اسم داشته باشه.

  • جادی این فقط برای افرادی جواب میده که سرور داشته باشن، برای اونایی که هاست دارن باید چیکار کرد ؟

  • امیر آهنگری

    جادی اگه ممکنه این کارو برای ویدیوکست ها انجام بده.