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

دانلود شبانه برای Steam

بزرگ‌ترین مشکل من با استیم، دانلود بازی‌هاش بود چون حجم خیلی خیلی زیادی دارن. ساعت دانلود رایگان داشتم ولی باید دستی دانلود رو شروع می‌کردم. خب شروع کردم به جستجو و تحقیق که به این روش رسیدم؛ این‌طوری میشه هر برنامه‌ای رو با استیم به راحتی دانلود کرد.

من برای اجرای فرمان‌ها در ساعات مقرر از cron استفاده می‌کنم. وقتی که cron دستوری رو اجرا می‌کنه، خیلی از متغییرهای رایج از جمله DISPLAY ست نمی‌شن و اگر دستور داده‌شده نیازمند سیستم گرافیکی باشه با خطا روبرو می‌شه و کار نمی‌کنه. این‌جاست که Xvfb به کمکمون میاد: یه مانیتور غیر واقعی و قلابی!

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

۱. نصب Xvfb

root@debian:~# apt-get install xvfb

۲. به دست آوردن ID برنامه یا بازی مورد نظر

هر برنامه‌ای توی استیم یک ID داره. مثلا من می‌خوام ID بازی Dota2 رو به دست بیارم. اسمش رو جستجو می‌کنم و به همچین لینکی می‌رسم:

http://store.steampowered.com/app/570

بینگو! یقیناً اون 570 انتهای لینک ID مورد نظر ماست.

۳. ساختن اسکریپت دانلود

این اسکریپت به ترتیب این کارها رو برامون انجام می‌ده:

  • ساختن یک صفحه‌نمایش مجازی
  • تنظیم DISPLAY
  • رفتن به پوشه‌ی خانگی(استیم باید توی PWD=$HOME اجرا بشه)
  • اجرای خود استیم و لاگ کردن خروجیش
Xvfb :5 -screen 0 1280x720x24 +extension GLX +render -noreset > /dev/null 2>&1 &
export DISPLAY=:5
cd
/usr/games/steam -applaunch <APPID> >> steam.log 2>&1

نکته: یادتون نره که <APPID> رو با ID برنامه‌تون عوض کنین. مثلا همون 570 که مربوط می‌شه به Dota2.

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