انتقال داده شد!


انتقال داده شد به http://shahinism.com

Advertisements

چ‌چ‌چ (۱۱)‌: چگونه می‌توانم بفهمم کارت اترنتم (NIC) شناخته شده یا نه‌؟


کارت اترنت شیشهٔ زندگی یک سرور لینوکسی به حساب می‌آید‌. پس اگر نیاز دارید که بفهمید کارت اترنت سرورتان شناخته شده از دستور dmesg، ifconfig یا netstat استفاده کنید‌. دستور ifconfig می‌تواند برای تنظیم یک کارت رابط شبکه (Network interface card) به‌‌ همان خوبی که برای کشف اطلاعات دربارهٔ کارت اترنت عمل می‌کند‌، مورد استفاده قرار گیرد‌. اگر می‌خواهید چیپ کارت شبکه‌تان را بشناسید هم می‌توانید از دستور lspci استفاده کنید (‌پایین‌تر نمونه‌ای از خروجی این دستور را با هم می‌بینیم‌) ‌.
[bash]
# /sbin/ifconfig
[/bash]
خروجی‌:
[bash]
eth۰ Link encap: Ethernet HWaddr ۰۰: ۲۴: ۱d: d۱: ۰۴: d۰
inet addr: ۱۹۲. ۱۶۸. ۱. ۲ Bcast: ۱۹۲. ۱۶۸. ۱. ۲۵۵ Mask: ۲۵۵. ۲۵۵. ۲۵۵. ۰
inet۶ addr: fe۸۰:: ۲۲۴: ۱dff: fed۱: ۴d۰/۶۴ Scope: Link
UP BROADCAST RUNNING MULTICAST MTU: ۱۵۰۰ Metric: ۱
RX packets: ۱۸۰۷۸ errors: ۰ dropped: ۰ overruns: ۰ frame: ۰
TX packets: ۲۰۱۰۸ errors: ۰ dropped: ۰ overruns: ۰ carrier: ۰
collisions: ۰ txqueuelen: ۱۰۰۰
RX bytes: ۱۰۱۹۴۷۸۶ (۹. ۷ MiB) TX bytes: ۳۴۵۳۳۵۳ (۳. ۲ MiB)
Interrupt: ۴۰ Base address: ۰x۸۰۰۰
[/bash]
توجه کنید که اگر در خروجی eth۰ را دیدید‌، پس کارت شما شناخته شده‌. نکته دیگر اینکه در سرور‌های مجازی با عبارات دیگری نظیر venet روبرو هستید‌، که پس از تجربه کردنشان‌، می‌توانید بهتر درکشان کنید 😉
برنامه dmesg به کاربران کمک می‌کند پیغام‌های هنگام بوت را مشاهده کنند‌. این پیغام‌ها در فایل ‎/var/log/dmesg (‌لینوکس دبیان‌) ذخیره می‌شوند‌:
[bash]
cat /var/log/dmesg | grep -i eth۰
[/bash]
خروجی‌:
[bash]
[۴. ۷۰۹۳۴۷] r۸۱۶۹ ۰۰۰۰: ۰۲: ۰۰. ۰: eth۰: RTL۸۱۶۸c/۸۱۱۱c at ۰xffffc۹۰۰۱۰۹c۸۰۰۰، ۰۰: ۲۴: ۱d: d۱: ۰۴: d۰، XID ۱c۴۰۰۰c۰ IRQ ۴۰
[/bash]
و یا:
[bash]
# dmesg | grep -i eth۰
[/bash]
نمایش جدول تمام رابط‌های شبکه‌:
[bash]
# netstat -i
[/bash]
خروجی‌:
[bash]
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth۰ ۱۵۰۰ ۰ ۱۸۴۰۸ ۰ ۰ ۰ ۲۰۵۲۴ ۰ ۰ ۰ BMRU
lo ۱۶۴۳۶ ۰ ۹۸۲۲ ۰ ۰ ۰ ۹۸۲۲ ۰ ۰ ۰ LRU
[/bash]
پیدا کردن چیپ NIC
برای رفع نقض کردن کارت ارتنت (NIC) من پیشنهاد می‌کنم که از دستور lspci استفاده کنید‌. Lspci ابزاری برای نمایش اطلاعات تمام درگاه‌های PCI موجود در سیستم که ابزار‌ی به‌شان متصل شده می‌باشد‌.
[bash]
lspci | less
[/bash]
یا
[bash]
lspci | grep Ethernet

[/bash]
خروجی‌:
[bash]
۰۲: ۰۰. ۰ Ethernet controller: Realtek Semiconductor Co.، Ltd. RTL۸۱۱۱/۸۱۶۸B PCI Express Gigabit Ethernet controller (rev ۰۲)
[/bash]
در مثال بالا من یک کارت «Realtec Semiconductor» با چیپ RTL-۸۱۱۱/۸۱۶۸B دارم‌.

منبع

دسته‌ها:چی‌؟ چرا‌؟ چگونه‌؟ برچسب‌ها: , , ,

چ‌چ‌چ‌ (۱۰): دستور Uptime سرور برای پیدا کردن اینکه سیستم چه مدت در حال اجرا بوده


من می‌خواهم بدانم چه مدت سیستم یونیکسی‌/لینوکسی‌ام فعال بوده‌. چطور این کار را بکنم‌؟
هر دو سیستم یونیکس و لینوکس با ابزار‌های مختلفی این امکان را به ما می‌دهند که uptime سیستم را پیدا کنیم‌. در لینوکس فایل ‎/proc/uptime اطلاعات uptime سیستم و فایل ‎/var/run/utmp اطلاعات اینکه چه کسی در حال حاضر به سیستم متصل است را در خود نگه می‌دارند‌. اطلاعات ذخیره شده در فایل‌های ذکر شده‌، مستقیما توسط انسان قابل خواندن نیستند‌، به همین دلیل ما به دستورات زیر نیازمندیم‌.

دستور uptime در یونیکس/لینوکس
یک ترمینال باز کنید‌، و سپس دستور زیر را وارد کنید‌:
[bash]
$ uptime
[/bash]
نمونه‌ای از خروجی به صورت روبرو خواهد بود‌:
[bash]
۱۲: ۱۶: ۰۱ up ۵۷ min، ۳ users، load average: ۰. ۰۲، ۰. ۱۳، ۰. ۲۲
[/bash]
این دستور اطلاعات زیر را در یک خط به شما نمایش می‌دهد‌:

  • زمان فعلی (۱۲: ۱۶: ۰۱)
  • چه مدت سیستم در حال اجرا بوده (۵۷ دقیقه)
  • در حال حاضر چه تعداد کاربر به سیستم متصلند (۳ کاربر)
  • میانگین لود سیستم در ۱‌، ۵ و ۱۵ دقیقه گذشته (۰. ۰۲، ۰. ۱۳، ۰. ۲۲)

این تقریبا‌‌ همان اطلاعاتی است که در سرخط اطلاعات نمایش داده شده توسط دستورات w و top می‌توانید مشاهده کنید‌:
[bash]
w
[/bash]
نمونه‌ای از خروجی به این شکل خواهد بود‌:
[bash]
12:20:34 up 1:02, 3 users, load average: 0.01, 0.07, 0.17
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
master tty1 – 11:19 18:17 0.16s 0.00s /bin/sh /usr/bin/startx
master pts/0 :0 12:02 0.00s 0.07s 0.00s w
master pts/1 :0 12:02 18:01 0.00s 0.94s kdeinit4: kded4 [kdeinit]
[/bash]

[bash]
$ top
[/bash]
نمونه‌ای از خروجی‌:

نمونه خروجی TOP

منبع

حل مشکل USB Stick‌هایی که به صورت Unsafe از سیستم جدا شده‌اند

دسامبر 31, 2011 ۱ دیدگاه

شاید برای شما هم پیش آمده باشد که USB Stick (فلش درایو‌) ای از دوستی گرفته‌اید ولی پس از نصب روی سیستمتان متوجه شده‌اید که قابل نوشتن نیست‌. نمونه‌ای از اخطار مربوطه به صورت زیر است‌:
[bash]
Error opening file ‹/media/Shahin_LG/1.jpg›: Permission denied
[/bash]
معمولا این اشکال در ازای جدا کردنش از سیستم در حین کار اتفاق می‌افتد‌. حال ممکن است که روی یک سیستم واقعی بوده باشد‌، یا یک فکش پلیر‌! به شخصه در اولین بر خورد با چنین مشکلی‌، آسیب دیدن فایل سیستم را دلیل دانستم‌، ولی پس از چک کردن فایل سیستم متوجه شدم که چنین نیست‌. راه حل این بار سوار کردن (Mount) دستی فلش درایو به صورت زیر است‌:
[bash]
sudo mount -t ntfs-3g /dev/sdb1 /media/LG -o force
[/bash]
توجه داشته باشید که برای جواب گرفتن از این دستور باید بسته‌های ntfs-config و ntfs-3g را نصب داشته باشید و همچنین پوشه‌ای برای سوار کردن فلش درایو (در این‌جا ‎/media/LG) ایجاد کرده باشید‌.

منبع حل مشکل

دسته‌ها:حل مشکل, سخت افزار برچسب‌ها: , , ,

چ‌چ‌چ (۹): چطور به صورت فله‌ای لینک‌های یوتیوب را از وب‌سایتی استخراج و دانلود کنیم‌!

دسامبر 17, 2011 2 دیدگاه

ببخشید که تیتری از این ساده‌تر و گو‌یاتر پیدا نکردم‌. ولی خوب اصل موضوع خیلی قشنگ چالش بر‌انگیز است‌. مساله این است‌:

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

کار عادی‌اش به این صورت است که بنشینیم و با حوصله تک تک لینک‌ها را کپی پیست کرده و جایی ذخیره کنیم‌. ولی با وجود دویست صفحه و لینک‌، کمی (‌خیلی‌) خسته کننده (‌خریت‌ به معنای واقعی کلمه‌، البته ببخشید ;-)) است. خوب جواب مساله را خودم هم نمی‌دانستم‌، ولی مطمئن بودم‌، با ابزار‌های گنو‌/‌لینوکسی‌، نتیجه‌ی خیلی خوبی خواهم گرفت‌. اولین کاری که به فکرم رسید‌، دانلود صفحه‌ی اصلی و صفحه‌های پیوند شده به هر لینک بود که با wget خیلی خوب بلد بودم! به این صورت‌:
[bash]
wget -rl1 http://thenewboston.org/list.php?cat=11
[/bash]
خوب نتیجه‌ مجموعه‌ای از فایل‌ها بود که با اسم‌هایی شبیه به آدرس‌شان در پوشه‌ی جاری ذخیره شده بود. با استفاده از آرگومان‌های rl1 به wget فهماندم که صفحه‌ی حاضر را به عمق یک صفحه رو به جلو دانلود کند‌. حالا مساله‌ی سخت این‌جا بود که چطور به grep بفهمانیم که چه چیزی را (‌در این‌جا لینک ویدیو در یوتیوب‌) برایمان جدا کند‌. دستوری که با دفعات زیادی آزمون و خطا نتیجه داد‌، به این صورت بود‌: (‌برای دیدن دستور کامل‌تر به آخر مطلب رجوع کنید‌، ویرایش۱)
[bash]
grep -ohE «http://www.youtube.com/watch?v=%5B%5B:alnum:%5D-%5D{11}» * > list
[/bash]
کار این دستور این است که یک لیست از الگوی داده شده را ایجاد و در فایل list ذخیره کند‌. آرگومان‌های ohE به طور خلاصه به grep می‌فهمانند‌ که فقط عبارت داخل پرانتز را در فایل‌ها پیدا کند و در خروجی نمایش دهد‌. قسمت جالب قضیه که بیشتر از همه وقتم را گرفت بخش زیر بود‌:
[bash]
[[:alnum:]-]{11}
[/bash]
که به grep می‌گفت ترکیبی از حروف و ارقام را به تعداد یازده عدد قبول کند‌. در مورد این عبارت‌ها در آینده‌ای نزدیک پستی در شاهینیسم خواهیم داشت.
برای دانلود لینک‌ها هم می‌توانید همان فایل خروجی را به صورت زیر به youtube-dl بدهید‌:
[bash]
youtube-dl -ta list
[/bash]
البته سرعت دانلود youtube-dl واقعا پایین است‌. روی سروری با دانلود عادی ده مگ‌، سرعت به زور می‌توانست به چهل کیلوبایت برسد‌. پیشنهاد من به شما‌، نصب یک نسخه از RapidLeech است‌. سرعت و کاربرد بسیار بهتری دارد 😉

ویرایش ۱: بعد از مدتی استفاده از این دستور‌، فهمیدم که از اونجایی که توی آدرس‌های Youtube امکان وجود آندرلاین هم هست‌، تعدادی از لینک‌ها رو با دستور بالا از دست می‌دیم‌. به همین دلیل دنبال یه راه دیگه گشتم‌، و سر‌انجام به دستور زیر رسیدم که نتیجه‌ی خیلی قابل قبول‌تری می‌ده‌:
[bash]
grep -ohE «http://www.youtube.com/watch?v=%5B%5B:alnum:%5D(-|_)]{11}» * | uniq > list2
[/bash]
همچنین توی این دستور با استفاده از uniq از تکرار لینک‌ها در صفحه خروجی جلوگیری می‌شه 😉

چ‌چ‌چ‌ (۸)‌: رنگی کردن خروجی فرمان ls در BASH


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

برای رنگ کردن نتیجه‌ی خروجی خود دستور ls یه آرگومانی به این صورت داره ‎-‎‎-color که خروجی رو رنگی می‌کنه‌. یعنی هر بار که می‌خواین خروجی رنگی بگیرین باید یه همچین دستوری رو بزنین‌:

[bash]
ls –color
[/bash]
که خوب این یه کم ممکنه خسته کننده باشه‌. برای رفع مشکلش هم که طبیعیه می‌تونین از alias استفاده کنین‌، و برای ماندگار شدنش یه همچین خطی رو به فایل ‎.bashrc تون اضافه کنین:
[bash]
alias ls=»ls –color=always»
[/bash]
این دقیقا کاریه که خیلی از توزیع‌ها به صورت پیش‌فرض انجامش می‌دن‌. ولی خوب همونطور که گفتم دوست عزیزم پیروزان یه چیز جالب‌تر هم معرفی کرده بود‌. ماجرا از این قراره که این آرگومان ‎-‎‎-color که بحثش رو کردیم‌، بر می‌گرده از یه فایلی به اسم DIR_COLORS توی شاخه‌ی etc الگوی رنگ‌بندیش رو بر می‌داره‌ (‌که البته با توجه به توزیع‌های مختلف ممکنه جای این فایل فرق کنه‌). حالا یه آدم باحال نشسته و رنگ‌بندی متنوعی برای سیصد نوع فایل مختلف آماده کرده و توی این کانال git منتشر کرده‌. برای استفاده از این فایل اول اون رو دانلود کنین و برای مثال توی شاخه‌ی خانگی لینوکستون ذخیره کنین‌. حالا با اضافه کردن خط زیر توی فایل ‎.bashrc از رنگ‌بندی جدید لذت ببرین‌:
[bash]
eval $(dircolors -b LS_COLORS)
[/bash]
نمونه‌ای از خروجی این فایل به صورت زیره‌:

نمونه‌ای از خروجی فایل LS_COLOR

چ‌چ‌چ (۷)‌: بستن یک حساب کاربری در گنو‌/‌لینوکس


دستور passwd برای تغییر رمز عبور حساب‌ یک کاربر یا گروه مورد استفاده قرار می‌گیرد‌. یک کاربر عادی تنها قادر است که رمز عبور اکانت خودش را عوض کند‌، اما کاربر اصلی (‌ریشه‌) می‌تواند رمز عبور هر حسابی را عوض کند‌. شما با استفاده از این دستور می‌توانید یک حساب را قفل کرده و یا قفلش را باز کنید‌.

قفل یک حساب گنو‌/‌لینوکس‌:

نحو‌:
[bash]
passwd -l (username)
[/bash]
حساب را قفل می‌کند‌. در واقع آپشن‌* ‏‎-l با تغییر رمز عبور یک حساب به یک مقدار رمز شده‌، حساب را از دسترسی خارج می‌کند‌.

مثال‌:

قفل کردن حسابی به اسم shahin‌. با کاربر ریشه وارد می‌شویم و دستور زیر را وارد می‌کنیم‌:
[bash]
# passwd -l shahin
[/bash]

قفل‌گشایی یک حساب گنو‌/‌لینوکس:

نحو‌:
[bash]
passwd -u (username)
[/bash]
حساب را قفل‌گشایی می‌کند‌. این آپشن ‎-u رمز حساب رو به مقدار قبلی‌اش باز می‌گرداند و آن را دوباره فعال می‌کند‌.

مثال‌:

برای باز‌گشایی یک حساب کاربری به اسم shahin‌، اول با کاربر ریشه وارد می‌شویم‌، و دستور زیر را وارد می‌کنیم‌:
[bash]
# passwd -u shahin
[/bash]

*‌: هر چه سعی کردم کلمه جایگزینی برای آپشن (‌انتخاب‌) به ذهنم نرسید که جمله‌بندی را خراب نکند‌. به بزرگی خودتان ببخشید‌!

منبع