Япон хүнд байдаг сайн шинжүүд, бид тэднээс нь суралцъя

Нэлээн удаан завсарласны дараа нэг бичлэг оруулж байна, сэдвийн хувьд арай өөр зүйл рүү хадуурсан ч гэсэн энийг уншиж байгаа танд тун хэрэгтэй байх болов уу. Мэддэг ч гэсэн анхааралдаа авахаар хэдэн зүйл бичсэн юм. Жаахан урт урт байх шүү, дуустал нь уншаарай, дамаа сүүлийн хэсгийг сайн тогтож уншаад, ойлгож аваараа.

Эхлээд жаахан оршил бичье гэж бодож байна: Би бээр сүүлийн 6.5 жил Японд нэгэн дунд зэргийн IT –ийн компанид программист хийсэн юм. Тэнд ажиллаж амьдарч байхдаа Япон хүмүүсийн талаарбагагүй ойлголттой болсон гэхүү, өөрийн ажигласан дээрээ тулгуурлаад тэдэнд байдаг сайн талуудыг бичье гэж бодож байна. Мэдээж муу гэхээр сул талаад тэдэнд байгаа л даа, тэр нь бидэнд хамаа байж үү. Хүний сайн , хүчтэй, дэвшилттэй зүйлийг өөртөө, амьдралдаа, ажилдаа хэрэгжүүлэх нь бидэнд л хэрэгтэй шүү дээ, тийм үү дээ.

Япон хүнд байдаг сураад авахаар нэлээн олон чанар байдгаас энд дурдаж, өөрийн бодлыг нэмэрлээд бичиж байна. Зөвлөгөөнүүд бол бас л Япончуудтай ажиллаж байхдаа тэднээс миний олж харсан зүйлүүдийг жаахан нэмж хачирлав. Мэдээж би бүгдийг нь мөрдөж, амьдрал болгож чадаагүй, чадахгүй байгаа ч гэсэн, энэ тэмдэглэлийг уншигч ТА чадна гэдэгтэй би итгэлтэй байна.

1. Япончууд хүнтэй мэндлэх соёл өндөртэй, бас тийм үг хэллэгүүд ч элбэг байх юм. Япон хүнтэй нь холбоотой юм үү, хэл, ёс заншилтай нь холбоо байна уу, тэд мэндлэх хүндлэх үг хэллэг тун сайн хэрэглэж сурч ээ. Мэдээж зарим нэг нь хэлэх дургүй л байх шиг харагддаг ч, бүүр хэлээд сурсан, хэлэх ёстой гэхээр байх юм. Энэ бол том соёл гэж бодож байна.

Зөвлөгөө -1: Өглөө болгон гэрийнхэндээ, ангийнхандаа, ажлынхандаа мэндчилгээний үг хэлж бай, орой ажил, хичээл тарахдаа бас баяртай гээд сайхан инээх ч гоё харагддаг шүү дээ. Баярлалаа гэдэг үгийг байнга хэрэглэж бай.

2. Цаг баримтлахдаа тун сайн.Цаг барих бол аливаа хүний хэн бэ гэдгийг тодорхой харуулдаг нэг эд шүү дээ. Тэд бол цагийг мундаг барина, дамаа бизнес хийж байгаа бол тухайн уулзалт энэ тэрд тохирсон цагаасаа хамаагүй эрт ирээд хүлээж байх жишээтэй.

Зөвлөгөө -2: Бугуйндаа цаг зүүж бай. Хүн цаг зүүснээр аливаа ажилд баримжаатай, төлөвлөсөн хугацаандаа байгааг хянаж байх, хугацаат цагтаа ажлаа амжуулах нэг төрлийн мэдрүүр болдог. Тэгээд мэдээж цаг сайн баримталж сурах нь хэрэгтэй гэдгийг надаар хэлүүлэлтгүй биз дээ.

3. Ажлын төлөвлөгөө, хувийн цагын, ажлын хуваарь, төлөвлөгөө боловсруулах, тэрийгээ яг амьдрал дээр мөрдлөгөө болгохдоо үнэхээр мундаг. Япон хүмүүс жил болгон нэг тэмдэглэлийн дэвтэр эхлүүлнэ, тэрэн дээрээ хийх ажил, уулзах хүн, бүгдийг цаг нартай нь бичиж тэмдэглээд, тэрнийхээ дагуу ажлаа, амьдралаа зохицуулна.

Зөвлөгөө -3: Хийх ажлаа, хэнтэй хаана, хэдэн цагт уулзахаа ядаж 7 хоногоор нь бичиж тэмдэглэж бай, ядаж нүдэндээ ил харагдахаар, ширээн дээрээ бичээд байнга харж бай. Ажил хэрэгч байдал яг тэрнээс эхлэнэ.

4. Аливаа зүйлийг бичиж тэмдэглэж авах, хувийн, ажлын тэмдэглэл хөтлөх, хүнээс юм асуух, сурахдаа бүүр ажил хэрэг болгоод дэвтэр гараад, тэрэн дээрээ бичдэг, бичгийн соёл өндөр ард түмэн. Угаасаа суурин амьдралаар олон жил болсон болоод тэрүү бичгийн соёл, тэмдэглэл, баримтжуулах, үлдээж авах, хадгалахдаа мундаг даа.

Зөвлөгөө -4: Ямарваа нэг ажил хийхдээ, хийсэн ажлаа заавал тэмдэглэж, бичлэг үлдээж сур, дараа заавал хэрэг болдог юм. Хүнээс юм асуусан бол ажил хэрэг болгож тэмдэглэж бай. Компьютерын дэсктоп дээр нэг теxт файл нээчих, тэрэндээ мэдсэн, сурсан, шинэ зүйлээ бүгдийг нь бичиж байхад, эргээд хэрэг болох нь их байдаг юм. Тэгээд нөгөө файлаасаа “CTRL+F” даралтаар хайх үгээ оруулаад хайгаад л олно шүү дээ.

5. Аливаа ажилийг дуустал, бүүр цаашаа юм гарахгүй болтол нь хийхийг, хөгжөөлэхийг хичээдэг. Жижиг ч гэсэн нэг санааг цааш нь ажил болгоно, тэр ажлаа байнга сайжруулахдаа мундаг мэргэжсан ард түмэн. Японы хөгжсөн нэг түлхүүр бол энэ гэдэг юм. Аливаа нэг санааг тултал нь сайжруулна, нэмэгдүүлнэ, хөгжүүлнэ. Угаасаа Япончууд шинэ зүйлд дуртай юм, олон хүнтэй юм, хийсэн санаа оноо нь бизнес болох юм. Нэг ажлыг сайн хийж байж л энд амьдрал нь баталгаатай болдог нийгэм юм байна.

Зөвлөгөө –5: Ямар нэгэн ажлыг сайн хийж чаддаг бол. Би энэ ажлыг л хийж чадна гэж хэлдэг болохоор хийж сур. Тэрийгээ байнга давтаж, сэргээж, сайжруулж, хөгжүүлж бай. Тэр л чиний хоол болно шүү.

6. Багаар ажиллахдаа сайн. Япон хүн их бүрэг гэхээр, дуу цөөн, хүнтэй харилцахдаа хойрго, ерөнхийдөө хүйтэн гэхээр хүмүүс л дээ. Тэгэхдээ бизнес, ажил дээр бол багаар ажиллахыг үзүүлж өгнө шүү дээ. Угаасаа багаар ажиллах нь хэрэгтэй, үр бүтээлтэй гэдгийг аль эрт мэдсэн болохоор тэгдэг байх даа. Манай ухаант өвгөд хүртэл бидэнд сургасан байдаг шүү дээ: “Цувж явсан бараас, цуглаж суусан шаазгай дээр” гээд. Багаар ажиллахын даваа талыг л магтан дуулсан хэрэг шүү дээ.

Зөвлөгөө -6: Аливаа ажлыг бага гэхгүй багаар ажиллаж сур. Багаар ажиллаж байхдаа байнга хуралд, хуралдаж байж ажлын асуудал шийдэгдэнэ, хүний асуудал шийдэгдэнэ, цаг хожно, шийдвэр хурдан гарна, дараа дараагын арга замуудыг хурдан шийднэ.

7. Аливаа зүйлийг бататган баталгаажуулан асууж авахдаа гаргуу сайн. Ямар нэг ажил хийж байхдаа, хүнээс ажил аваад, хүнээс үг дуулаад заавал тэр хэлсэн, ярьсан зүйлийг нь дахин нэг асууж баталгаажуулж авдаг хүмүүс дээ. Жишээлбэл нэг хүнээс ажил авлаа, үүрэг авсан бол, үүрэг өгсөн бол ярианы сүүлд нь заавал баталгаажуулж асуудаг, хэлдэг. Тэр нь буруу зүйл хийхгүй, нөгөө бидний хэлдэг 7 хэмжиж 1 огтол гэдэг шиг л юм болов уу даа.

Зөвлөгөө -7: Ямар нэг ажил, асуусан зүйлээ бичиж аваад, тэгээд тэр хүнийхээ яриад, хэлээд дуусахаар нь энэ таны хэлсэн мөн үү, ингэж хийх юм байна тийм үү гэж бататган асууж сур.

8. Япон хүн амласандаа хүрэхийг хичээдэг зантай, итгэсэн хүндээ туслахдаа ч дуртай байдаг юм. Угаасаа ёс заншил, түүх нь тэднийг тийм байлгах хүчтэй нөлөө болдог. Жишээ нь САМУРАЙ гэхээр ихэнх хүмүүс цэргийн талын хүн гэж боддог байх, угтаа бол энэ үг Япон хүнд сонсогдохдоо “Нэр төр, үнэнч байдал, итгэлтэй ёс суртахуун” гэж сонсогддог болохоор тэр утгаараа итгэл дааж чаддаг, итгэл хүлээлгээд, итгэсэн хүндээ бас үнэнч байдаг.

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

------- HORENSO -------

Сүүлийн үд Япончууд бизнестээ их хэрэглэж байгаа тухайн компаний АЖИЛ-ыг амжилттай урагшлах, хурдан шуурхай болгох нэг суурь болсон гэхээр “HORENSO” гэгдэх арга техникийн талаар жаахан бичье гэж бодож байна. Мэдээж Интернетээс энэ үгээр нь хайвал зөндүүн л юм гарч ирнэ. “HORENSO” нь 3 үгний товчилсон хэлбэр : HO-Hokoku (Reporting), RE-Renraku (Connecting), SO-Sodan (Consultation). Би зүгээр эхлэл, ойлголт өгөх зорилгоор өөрийн санаа оноогоо оруулаад бичиж байна, та харин дэлгэрүүлж судлаараа, ажил-амьдралдаа хэрэглээрэй. Гацаад байгаа ажил, эхлүүлж байгаа ажил тань мэдэгдэхүйц урагшаа ахиж, хурдан шуурхай болохыг та МЭДРЭХ болно шүү.

- HO-Hokoku (Reporting):Энэ бол энгийн бидний хийдэг л зүйл, ажил болговол түн хэрэгтэй гэдгийг хэн ч мэддэг гэж бодож байна. Энгийн үгээр тайлбарлавал: Ямар ч ажил үйл хийж байхдаа, хамтрагчдаа, даргадаа өөрийн ажил, хийж байгаа зүйлээ байнга тайлагнаж, мэдээлж байх, мэдээж хэзээ хэрхэн яаж гэдгийг нь ярилцаад тогтоно шүү дээ. Ингэж тайлагнаж, хамтрагч, даргадаа мэдэгдэж байх нь тухайн тайлан тавьж байгаа хүний ажлын явц тодорхой харагдахаас гадна асуудал үүссэн, хийж чадахгүй байгаа зүйл нь ил тод болж тэрийг нь чаддаг хүнд нь өгөх, хамтаар ярьж арга замыг хайх, ажлыг хурдан урагшлуулах эх үндэс болдог байна. (Би чадна гээд нухаад байх нь цаг алдана, тэгээд үр дүн муу) Шуурхай ажил биш бол 7 хоногоор, шуурхай ажил хийж байгаа бол өдөр бүр хуралдаж, тайлагнаж байх нь ажил амжилттай урагшлахын нэг түлхүүр болдог байна.

- RE-Renraku (Connecting): Энгийнээр бол хамтрагч, холбоотой ажилдаг нэгэнтэйгээ холбоо барих, эргэж холбоо барих явдал юм. Аливаа ажил үйл хийж байхдаа, хийсний дараа байнга холбоо бариж, юу болж байна, яаж байна, санаа оноо юу байна гэж байх нь тухайн хүнтэй дахин ажил үйл хийх, хамтрах сэтгэлийг түрүүлдэг байна. Хувь хүн ч гэсэн дээ найз нөхөд, аав, ээж, ах дүү нартайгаа байнга холбоо барьж байх нь тэр хүмүүст сайхан байдаг шүү дээ. Нэг ажил хийгээд, тэгээд зугтаагаагүй мөртлөө л таг алга болдог муу зан бидэнд байдаг шүү дээ, тэгэхгүй л байх хэрэгтэй гэсэн ухаан юм. Холбоо барихад юугаар ч байж болно ш дээ, э-майл, майл, утас, …. гээд л харилцаа холбооны бүх л хэлбэр байхад болно гэж бодож байна. Ташрамд э-мэйлээр ажил явуулахад их олон давуу талтай шүү: баримт үлдэнэ, бичиж тэмдэглэж авна гэхгүй, зардал бага, олон хүнд зэрэг мэдээлэх, …

- SO-Sodan (Consultation): Энэ бас л энгийн юм шиг мөртлөө их хэрэгтэй, … Аливаа ажил үйлийг хийж байхдаа байнга харилцан ярилцаж, Зөвлөгөө хийж, тулгамдаад байгаа асуудал, ирээдүйд хийх ажил, хийсэн ажил бүгдийг нь ярилцаж туршлагатай нэгнээсээ сонсож, арга зам, боломжит хувилбаруудыг сонсож, зөвлөгөө авах нь ажил урагшаа хурдан ахих, дараа дараагын арга замыг хурдан олоход их хэрэгтэй дээ. Угаасаа туршлагатай нэгэнтэй өөрт тулгамдаад байгаа асуудал, болохгүй байгаа зүйлийг асууж, харилцан ярилцаж зөв замыг эрэлхийлэх нь үр дүнтэй, цаг хожих нигууртай гэдэгтэй санал нэг байгаа гэж бодож байна. Хувь хүний амьдрал дээр ч гэсэн өөрт тулгамдаад байгаа асуудлаа аав, ээж, ах дүү, найз нөхөдтэйгөө зөвлөж байх нь хожим алдаа гарахгүй байх үндэс болдог шүү дээ.

HOWTO backup files, folders, disk drivers, full system

Линүкс системтэй ажилдаг хүмүүс, админ-уудад мэдэж байвал зохих нэг зүйл бол мэдээлэл (файл, гэх мэт ) нөөцлөх, нөөцөлсөн архив файлаа буцааж сэргээх үйлдэл гэж боддог юм. Өнөөдөр энэ талаар хийсэн тэмдэглэлүүдээ харж байгаад нэгтгээд жаахан бичий. Мэдээж өөрийн гараар хийж үзсэн, байнга хэрэглэдгээсээ л бичнэ. Эхлээд доорх хэдэн команд, хэрэгслүүдийг нэг google -ээд сонирхоодохоорой.

- Command-line based:
dd
dump
cpio
tar
rsync
cp
- Text-based:
Ghost for Linux (g4l)
Amanda
Taper
- GUI-based:
KDat
PerfectBackup

Алийг нь сонгох вэ? гэдэгийн хувьд хэрэглэгчийн л үзэмж гэдэг нь мэдэх хэрэг гэж бодож байна. Тэгэхдээ авсаархан хэрэгсэл хайж байгаа бол command-line based хэрэгсэлүүд, хэрэглэгчид хялбар ойлгогдохоор, ердийн хэрэглэгчдэд бол GUI-based болон Text-based хэрэгсэлүүд, Сүлжээгээр дамжуулан болон алсаас удирдан нөөцлөх үйлдлийг хийх бол command-line based хэрэгсэлүүд сонгох нь зүгээр болов уу.

Нөөцлөлт хийж болохоор командуудаас ашиглаад нэг жижигхэн shell script бичээд л нөөцлөх үйлдэл хийдэг өөрийн хэрэгсэлтэй ч болох боломжтой. Жишээ нь “cp”, “rsync”, “tar” командууд ашиглаад хамгийн амархан нөөцлөгч тоол хийж үзий. Нөөцлөх үйлдэл хийх командуудийг доорх байдлаар бичиж болно.

# cp -a src dest
(a - параметр нь архивийн горим, "dpR" гэсэн 3 параметрүүдийн хослолтой адилхан.)
# rsync -a src dest
(a - параметр нь архивийн горим, "rlptgoD"гэсэн 7 параметрүүдийн хослолтой адилхан.)
# tar -zcf backup-file.tar.gz src
(z- gunzip, c- TAR файл үүсгэх.)

Одоо бид дээрх командийн аль нэгийг нь shell script болгоод, тэгээд дараа энэ script-ээ CRON-оос цагаар удирдагдаж ажилдаг болгоод л байнгын нөөцлөх үйлдэл хийдэг амархаан хэрэгсэлтэй болчихлоо. Энэ script дээрээ “TAR” ашиглаад нөөцлөлт хийсэн файлуудаа архив болгоод тэгээд нөөц файлууд хадгалахаар бэлдсэн диск драйвер рүү хуулах үйлдэл нэмээд л бүүр бүрэн гүйцэд гэхээр нөөцлөгч хэрэгсэлтэй болж байна. Ийм аргаар WEB, MAIL, DATABASE серверүүдийн дата файлуудыг байнга нөөцлөлт хийж болно. Дамаа “rsync”-ийг сонирхоороо. Урд нөөцлөлт хийсэн файл, шинээр нөөцлөлт хийж байгаа файлуудыг харьцуулаад, зөвхөн өөрчлөлт орсон файлуудыг л нөөцлөлт хийнэ, алсаас удирдаад нөөцлөлт хийх боломжтой гэх мэтээр давуу тал ихтэй.

Disk driver-ийг бүхлээр нь, өөрөөр хэлбэл системийг бүхлээр нь нөөцлөлт хийж авах талаар 3 арга бичий гэж бодож байна. 3-уулаа миний гараар шалгагдсан болно.

1. "tar" comand based
2. "dd" command based
3. Ghost for Linux "g4l"

1. "tar" based backup.

Энэ арга бол их энгийн, ердөөсөө Линүкс системийн бух хавтас, файлуудыг "*.tar.gz" файл болгоод л авах арга юм.
Нөөцлөлт хийх дараалал:
- Эхлээд нөөцлөх үйлдэл хийж авах шаардлагагүй хавтаснуудийг тодорхойлох. Жишээ нь системийн файл хадгалдаг хавтас “/proc” (энэ хавтсан дахь файлууд бол систем ажиллаж байхад л үүсдэг, линүкс цөмийн өгөгдлийн бүтцийн файлууд юм), “/mnt”, “/media” (системийн драйверүүд), “/tmp”, за тэгээд нөөцлөх үйлдэл хийж авах шаардлагагүй хавтас бас хэрэггүй байх, гэх мэтээр тодорхойлж авна.
- За тэгээд л “TAR” командаа шаардлагатай параметртэй нь бичээд л, ENTER дарахад нөөцлөх үйлдэл хийнэ дээ. Жишээ нь доорх командийг оруулаад үзээрэй.
# tar -zcvpf /archive/backup-`date'+%d-%B-%Y'`.tar.gz --directory / --exclude=proc --exclude=mnt --exclude=tmp --exclude=archive .

Тайлбар :
---- “-z” – Gunzip файл үүсгэх, “-c” TAR төрлийн архивийн файл үүсгэх, “-p” - Файлуудын шинж чанарыг хадгалж үлдэх, буцааж сэргээх үйлдэл хийхэд тэр хэвээр нь буулгана, “-v” - Үйлдэл хийгдэж буй файл дэлгэцэнд хэвлэгдэх.
---- `date'+%d-%B-%Y'` - систэмийн цагийг хэвлэх командын гаралтийг '%d-%B-%Y' хэлбэрийн формат бүхий гаралттайгаар нөөцлөх үйлдэл-ъ гэсэн тэxт-д нэмээд нөөцлөх үйлдэл архив файлын нэр бэлэн болно.
---- `` - дотор бичсэн линүкс команд ажиллаад үр дүнг текст хэлбэрээр буцаана.
---- “--directory” – TAR үүйлдлийнхамгийн эхлэл хавтсыг зааж өгөх
---- “--exclude” – Нөөцлөлт хийхгүй хавтасыг зааж өгөх
---- “.” тухайн хавтаснs бoх файлыг нөөцлөх үйлдэл хийхийг зааж өгөх

Дээрх үйлдлийг буцааж задлах команд бичвэл:
# tar -zxvpf /archive/backup-20-February-2007.tar.gz

Тайлбар: Энд бидний мэдэхгүй архив файлыг задлах үйлдлийг зааж өгөх “-x” параметр л байна. Нөөцлөлт хийсэн архивийн файл дотроос ямар нэг файл эсвэл хавтас хайх хэрэгтэй бол доорх командыг оруулах ба нөөцлөх үйлдэл хийсэн бүх хавтас, түүн доторх бүх файлууд жагсаагдан хэвлэгдэх ба тэгээд тэндээсээ файл хайна.
# tar -ztvpf /archive/backup-20-February-2007.tar.gz
# tar -ztvpf /archive/backup-20-February-2007.tar.gz | grep -i "search-file"


2. "dd" команд ашиглаж диск драйверыг тэр чигээр нь хуулан авах.

Дэлгэрэнгүй мэдээллийг “man dd” гээд үзээрээ. Энд бид 2 адилхан дискийг нэгнээс нь нөгөөд тэр чигээр нь хуулах үйлдэлд ашиглах болно.

Үйлдлийн дараалал:
- Хуулж авах эх дискийг "primary master" болгоод, хуулагдах дискийг "secondary master" байхаар бодож залгана.
- Компьютерыг асааж, GNOPPIX зэрэг линүкс live CD, DVD -нээс системийг эхлүүлнэ.
- SU эрхээр үйлдлийг хийнэ, команд оруулахад бэлдэнэ
- fdisk -ээр дискнүүдын мэдээллийг харна
# fdisk -l

Жишээ нь бидний тохиолдолд эхний диск "/dev/hda", дараах диск нь "/dev/hdb" гэсэн байдлаар системд танигдсан байг. Мэдээж хуулах, хуулагдах диск мөн эсэхийг дахин дахин сайн шалгаарай. 2 дискээ таниулж (mount /dev/hda /folder) байгаад дахин дахин шалгаарай.
- За хуулж авах, хуулах дискээ тогтоосон бол таниулсан дискээ “umount”-аар системээс устгана.
# umount /dev/hda
# umount /dev/hdb

- "dd" командаар хуулахдаа блокын хэмжээг нь гараар оруулж өгч болдог ба тэр хэмжээ нь том байх тусмаа хурдан хуулна, тиймээс тэр хэмжээг хэдээр тогтоохыг тооцоолохын тулд "fdisk -l"-ээр хатуу дискнийхээ хэмжээг хэдэн байт болохыг харж болно.
# fdisk -l /dev/hda

Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Дээрх тохиолдолд хатуу дискний цэвэр хэмжээ “80026361856” байна, за энэ тоонд үлдэгдэлгүй хуваагдахаар тоо 512, 1024, 2048, 4096, ... хэмжээнүүдээс сонгоно. Заримдаа энэ дискний нийт хэмжээ дээрх тоонуудад цэвэр хуваагдахгүй бол хамгийн бага хэмжээ болох 512 -ийг сонгоорой. (Миний хувьд би голдуу 512 -ийг ашиглаж байсан, удаан ч найдвартай гэдэг үүднээс.)

- Нөөцлөлт хийх командаа оруулаад ENTER
# dd bs=4096 if=/dev/hda of=/dev/hdb

bs=BYTES : force ibs=BYTES and obs=BYTES
if=FILE : read from FILE instead of stdin
of=FILE : write to FILE instead of stdout

Тэмдэглэл: Би энэ үйлдлийг яг адилхан 2 хатуу диск ашиглаж байгаа тохиолдолд л хэрэглэж байсан юм, өөр хэмжээтэй хатуу дискний тохиолдолд болно гэж уншиж байсан, хуулж авах диск нь том байх хэрэгтэй нь ойлгомжтой юм. Том хэмжээтэй дискэн дээрээ нөөцлөх үйлдэл хийж авах дискнийхээ хэмжээтэйгээр яг адилхнаар хуваалт “partition” үүсгээд, тэгээд нөөцлөх үйлдэл хийх нь дээрх үйлдэлтэй адилхан. Хуваалт хийхдээ “fdisk”-ийг ашиглаарай.

3. GHOST for Linux (g4l)

Эхлээд энэ аргаар хэрхэн нөөцлөх үйлдэл хийх талаар товчхон бичвэл: Ажиллаж буй сервер, линүкс компьютерийг унтраах шаардлагатай. "g4l" бүхий боот хийдэг CD-нээс нөөцлөх үйлдэл хийх компьютерт дээрээ систем уншуулж ороод, DHCP серверээс IP хаяг авч, тухайн сүлжээн дэх FTP серверт нөөцлөх үйлдэл хийсэн архив файлыг хуулна. DHCP, FTP сервер байх шаардлагатай. Үлгэр шиг л юм болж байна уу, хэ хэ хэ
Жишээ болгоод А компьютерын “/dev/hda” диск драйверыг бүхлээр нь нөөцлөх үйлдэл хийж "my-backup-20070101.gz" гэдэг файл үүсгээд, "192.168.200.1" IP хаяг бүхий FTP серверийн "backup" гэдэг хавтсанд хуулах үйлдлийг авч үзий.

Ажлийн дараалал:

1. Интернетээс “g4l” -ийн ISO image -ийг татаж авна. (Сүүлийн хувилбар нь "g4l-v0.23.iso" гэж байгаа)
Бас баримт бичгийн файлууд ч байгаа, эхлээд баримт бичгийн файлуудыг нь уншаад, google -дээд жаахан мэдээлэл толгойдоо хийж аваараа.
http://sourceforge.net/project/showfiles.php?group_id=119810

2. Татаж авсан "g4l-XXXX.iso" файлаа CD дээр боот хийж болох байдлаар бэлдэнэ.

3. DHCP сервер, файл хуулж болохоор FTP сервер бэлдээд, энэ 3 компьютерээ нэг сүлжээнд холбоно. Мэдээж хоорондоо холбогдох байдлаар “subnet mask” болон бусад сүлжээний тохиргоог хийнэ. Энд хэрэглэх жишээнд дараах байдлаар тохируулы гэж үзий.
- DHCP IP : 192.168.200.10 -192.168.200.20
- FTP server address : 192.168.200.1

4. Бэлдсэн "g4l" бүхий боот хийдэг CD-ээ нөөцлөх үйлдэл хийх компьютерт хийж, системийг шинээр ачаал

5. За тэгээд систем уншиж ороод, IP хайг автоматаар DHCP -ээс хийгдэнэ, тэгээд команд оруулж болохоор дэлгэц нээгдэх болно. Доорх "g4l" командыг параметрүүдтэй нь оруулна.

# ./g4l with arguments ($1, $2, ... )
$1 : FTP серверийн IP хаяг (192.168.200.1)
$2 : Нөөц файлын нэр болон өргөтгөлийн хамт (image.gz)
$3 : FTP серверт хандах бичих эрх бүхий хэрэглэгчийн нэр, нууц үг ('-u user1 -p pass1')
$4 : DHCP (default: enable), нөөцлөлт хийхээр бэлдэж буй компьютерт хэрэглэх IP хаяг DHCP серверээс авахыг зааж өгөх флаг.
$5 : Нөөц файлыг хуулах FTP сервер дээрх хавтасны нэр (default : img)
$6 : Сүлжээнд холбогдох сүлжээний интерфейсийн нэр (default : eth0)
$7 : reboot – Нөөцлөлт дуусаад “reboot” хийх эсэхийг заах флаг (default: not)

Бидний жишээнд бол:
./g4l 192.168.200.1 my-backup-20070101.gz '-u bayar -p pwd' dhcp backup eth0

Тайлбар бараг хэрэггүй гэхээр тодорхой харагдаж байгаа гэж бодож байна. “default” параметрүүд таны оруулахтай адилхан бол оруулаад хэрэггүй.

6. За эндээс эхлээд их амархан болно. Текст цэс бүхий дэлгэц нээгдэх ба тэрэн дээр тохиргооны хэсэгт таны оруулсан параметрууд суугдсан байх болно. Үндсэн цэснээс харж байгаад л таны тоглолт эхлэнэ. Жишээнд "/dev/hda" –ийг нөөцөлж, FTP серверт хуулахаар байгаа тул доорх сонголтуудыг хийнэ.

- RAM Mode (ANY filesystem,every bit, local+ftp)
- Network use (Backup/restore to/from network)
- Backup (Backup drive/partition to FTP server)
- Select from : hda
Ok
(Нөөцлөх үйлдэл эхлэнэ, дуустал нь хүлээ !!! )



7. Дуусав.

http://sourceforge.net/projects/g4l
http://www.howtoforge.com/back_up_restore_harddrives_partitions_with_ghost4linux

-------------

За дээрх 3 аргыг товчхон бичвэл нэг иймэрхүү юм болж байна. Мэдээж өөрсдөө дэлгэрүүлж судлаад, ажилдаа хэрэглэх нь зүйтэй болов уу. Асуух юм байвал мэдээж мэддэг чаддаг бол хэлж өгөхдөө дуртай байх болно.

HOWTO examining file (Файл хэрхэн шалгах талаар)

Ямар нэгэн файлын мэдээллийг үздэг, хардаг, мэдэж болдог олон арга байдаг, тэднээс өөрийн хэрэглэдэг хэдийг бичий гэж бодож байна.

1. “file” командаар файлын зохиогч болон бусад системийн мэдээллийг нь мэдэж болно.

# file /bin/ls
ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped

2. "cat, less, more, grep, ..." командуудаар файлын доторх агуулгыг нь харж, үзэж, судалж болно.
# cat file.lst
# more file.lst
# less file.lst
# grep "" file.lst

Дээрх командууд бол текст файлын доторхийг дэлгэцэн дээр сайхан хэвлэх болно. “cat”, “less” -ээр уншиж болохгүй кодлогдсон, бие дааж гүйцэтгэгддэг файлын агуулгыг үзэж болох ч уншиж болохгүй баахан код хэвлэх болно. “more” команд нь тухайн файлын агуулгыг дэлгэц, дэлгэцээр таслан үзүүлэх, “grep” бол тухайн файл дотроос сонирхож байгаа текст, тэмдэгт байгаа мөрийг хэвлэх, том хэмжээний файлтай ажиллаж байхад “less” команд нь хамгийн хурдан ажиллана, . . . гээд л өөр өөрийн давуу талуудтай.

3. "man" командаар тухайн командын талаарх мэдээллийг, хэрхэн ашиглах заавар, .... гээд л холбоотой бүх мэдээллийг хэвлэж болно.
# man ls
LS(1) User Commands LS(1)

NAME
ls - list directory contents

SYNOPSIS
ls [OPTION]... [FILE]...

DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuSUX nor --sort.

Mandatory arguments to long options are mandatory for short options
too.

-a, --all
do not hide entries starting with .

-A, --almost-all
do not list implied . and ..
. . . . . .
. . . . . .

HOWTO Redirection

Линүксийн командууд голдуу дэлгэцэн дээр үр дүнгээ хэвлэдэг. Тэгвэл redirection (чиглүүлэх) буюу “>” тэмдэгт ашиглаад бид командын гаралтыг файлруу чиглүүж , файлд хадгалж болдог талаар хэдэн зүйл бичий гэж бодож байна.
Жишээ нь: Нөгөө хэрэглэх дуртай “ls” командаа ашиглан “root” хавтасан дах файл болон хавтаснуудыг жагсааж файл болгон хадгалж үзий даа.

# ls -ls
total 90092
drwxr-xr-x 30 root root 4096 Feb 8 08:46 .
drwxr-xr-x 30 root root 4096 Feb 8 08:46 ..
-rw-r--r-- 1 root root 0 Feb 8 08:46 .autofsck
drwxr-xr-x 2 root root 4096 Oct 27 17:24 bin
drwxr-xr-x 3 root root 4096 Dec 4 12:22 boot
drwxr-xr-x 9 root root 4200 Feb 8 08:46 dev
drwxr-xr-x 90 root root 12288 Feb 8 08:46 etc
.......

# ls -la > file.list
# more file.list
total 90092
drwxr-xr-x 30 root root 4096 Feb 8 08:46 .
drwxr-xr-x 30 root root 4096 Feb 8 08:46 ..
-rw-r--r-- 1 root root 0 Feb 8 08:46 .autofsck
drwxr-xr-x 2 root root 4096 Oct 27 17:24 bin
drwxr-xr-x 3 root root 4096 Dec 4 12:22 boot
drwxr-xr-x 9 root root 4200 Feb 8 08:46 dev
drwxr-xr-x 90 root root 12288 Feb 8 08:46 etc
.......

Дасгал болгоод доорх хэдийг туршаад үздээ
# ping localhost > ping.txt
# date > mydate.txt
# dmesg > system-mssg.txt
# cat /var/log/messages | grep "kernel" > system-kernel.msg

Дүгнэлт:
- “|”, “>” 2 хамтдаа хоршоод байдаг байх нээ.
- “>” бол файл шинээр үүсгэх ба урд байсан бол устгаад шинээр үүсгэдэг бол “>>” гээд ашиглавал өмнөх файл дээр залгаад бичилт хийнэ.
- “>” -ыг “<” ингээд үзвэл бас өөр үйлдэл болно шуу. “<” бол ямар нэг файл болон командын агуулгыг нь өөр нэг командын оролт болгоход хэрэглэнэ. Жишээ нь дээр үүсгэсэн байгаа “file.list” гээд файл байгаа даа. “wc” команд ашиглан файл хэдэн мөртэй, хэдэн үгтэй, хэдэн бит мэдээлэл байгааг тодорхойлбол. Энд “file.list” гээд файлын агуулгыг нь “wc” командын оролт болгон ашиглаж байна.
# wc < file.lst
31 272 1527 file.lst

- "wc" командийг ашиглан адилхан үр дүн үзүүлэхээр 3 янзаар бичилт хийж үзий.
# wc file.lst
# cat file.lst | wc
# wc < file.lst

HOWTO pipeline

Линукс системтэй ажиллаж байхад хамгийн хэрэгтэй үйлдэл бол pipeline (өгөгдөл дамжуулах) хийх юм. "|" гэсэн тэмдэгтээр хэрэглэнэ. Товчхондоо бол нэг командын гаралтыг нөгөө командын оролт болгоход хэрэглэдэг. Өөрөөр хэлбэл 2 өөр командыг ашиглан, нийлүүлэн нэг үр дүн гаргах тун хэрэгтэй үйлдэл юм. Жишээ нь "ls", "sort" гэсэн 2 командыг нэгтгэж нэг үр дүн гаргах тохиолдол:

# ls /
bin etc lost+found sbin sys tmp boot home media opt
initrd misc proc srv usr dev lib mnt root var

# ls / | sort
bin
boot
dev
etc
home
initrd
.........
.........
sys
tmp
usr
var

Тайлбар: "ls" командын үр дүнд ROOT хавтасны файл, хавтаснууд дэлгэцэнд хэвлэгдэх болно. Харин "|" ашиглаад "sort" командыг нэгтгээд үзвэл, сайхан эрэмблэгдээд хэвлэгдэж байгааг харж болно. "ls" командын гаралт нь "sort" командын оролт болж үр дүн хэвлэгдэж байна.

Жишээ нь доорх үйлдлүүдийн үр дүн юу гарахыг үзээрэй.
# ls /usr | sort -r
# ls -ls | wc
# man ls | grep "format"
# ls -ls | awk '{ print $10 }'
# more /var/log/message | grep "kernel"
# more /var/log/message | grep "kernel" | "Memory"


Дүгнэлт:
- Нэг командын мөрөнд хэд хэдэн pipeline ашиглаж болох юм байна.
- "|", "grep" энэ 2 команд хамтрахаараа зэрлэг юм байна.
- "awk" Энэ ёстой гоё доо, ... Зүгээр л "command line" дээр script бичээд элдэвлэнэ ш дээ. Дараа энэ тухай дэлгэрэнгүй бичнэ ээ.

Terminal Emulator (Terminal application, term, or tty)

SSH, Telnet зэрэг протоkолууд ашиглаад Unix, Linux ... төрлийн үйлдлийн системд холбогдож, улмаар тухайн системтэй ажиллах боломжоор хангах "command-line interface" бүхий хэрэгсэл юм. Голдуу л MS-Windows -өөс Unix төрлийн системд холбогдож ажиллахад зориулагдана даа. Аюулгүй байдал, дамжуулж буй өгөгдлийн хамгаалалт зэрэгээсээ хамаараад голдуу SSH -д суурилсан хэрэгсэлийг нь ихэвчлэн хэрэглэж байна.

Жишээ нь доорх хэдийг сонирхоороо, би эхний 3 -ийг нь ашиглаж байсан, ашигладаг юм. Давгүй нь PuTTY, Япон тэмдэгт, тексттэй ажиллах шаардлага байдаг болохоор TeraTerm -ийг нь голдуу ашиглана. Cygwin нь MS-Windows дээр яг л Unix төрлийн систем дэр ажиллаж байгаа юм шиг болгох ч дэндүү том нүсэр тул бараг ашигладагуй юм.


-----

MS Windows -ээс Unix төрлийн системтэй ажиллахад доорх 2 хэрэгсэл байхад ч илүүдэхгүй шүү.

Free SFTP, FTP and SCP client for Windows
http://winscp.net/eng/index.php

VNC - the original cross-platform remote control solution
http://www.realvnc.com/

Screenshot: Tera Term
TeraTerm

Ойр зуур хэрэглэдэг командууд

# bind control-p:history-search-backward
Энэ командын дараа "Ctrl+p" даралтаар урьд ашиглаж байсан history-д хадгалагдсан командуудыг дуудах болно. Жишээ нь командын мөрөнд "h" оруулаад "Ctrl" товч дарж байгаад "p" товчийг дараад байхад "h" -ээр эхэлсэн (history, ...etc) , урьд таны хэрэглэж оруулж байсан командууд гарч ирэх болно.

# du -hs foo
( foo хавтасний нийт хэмжээг эмхэтгэсэн хэлбэрээр үзүүлэх.)
# du -hs *
( Тухайн идэвхтэй байгаа хавтасны дотор байгаа файл хавтаснуудын хэмжээг эмхэтгэсэн хэлбэрээр жагсаах.)

# ls -lst
# ls -lsS
# ls -1 | wc -l

# grep -i "search text" *
# grep "search text" *.c
# grep -R "search text" *
( Ажилын хавтасан дах файлууд дотроос текст хайх, subfolder -оролцуулж хайна, хайх файлыг зааж өгч болно.)

# ps -aux

# kill PID
# kill -9 PID
# killall file_name/command_name

# top

# tail -f /var/log/message
( Ямар нэг болохгүй бүтэхгүй төхөөрөмж,... суулгах гэж оролдож байхдаа доорхи командыг идэвхжүүлээд тэгээд системийн LOG мэдээлэлүүдийг монитор хийнгээ ажиллах нь хамгийн үр дүнтэй байдаг)

# ssh root@IP
# scp file root@IP:/tmp
( SSH командаар Remote компьютерт нэвтрэх, Remote компьютерт файл хуулах)

# tar -zxvf *.tar.gz
# tar -zcvf *.tar.gz file/folder

# rpm -ivh *.rpm

# shutdown -h now
# shutdown -r now

Alias
Байнга оруулдаг командууд урт бичлэгтэй бол доорх байдлаар зохиомол нэр өгч ашиглаж болно. Жишээ нь "home/bayar" гэдэг хавтсанд байнга орох хэрэгтэй байдаг бол "q" гэсэн Alias үүсгээд, "q" гэсэн даралтаар л нөгөө хавтсандаа орно.
# alias q="cd /home/bayar"
# alias

GCC compile CGI file.
# gcc -o name.cgi name.c

GCC compile C file.
# gcc -o name name.c

Файлууд болон тухайн заасан хавтасуудыг бүхлээр нь харьцуулах, (-p) "c" төрөлийн файл бол функцийн нэрийг хэвлэнэ.
# diff -Naursp *.c *.c
# diff -Naursp foo1 foo2

Howto install qmail

"qmail " бол UNIX гэх мэт үйлдлийн системүүдэд зориулагдсан Internet Mail Transfer Agent (MTA) юм. Ер нь бол маш том ажил, маш ихээр хэрэглэгддэг, ... доорх линкээр ороод дэлгэрүүлж сайхан уншаарай.

http://www.qmail.org
http://www.lifewithqmail.org

2 жилийн өмнө QMAIL майл сервер суулгаж байсан юм. Тэгэхэд хийсэн тэмдэглэлийг жаахан засаад тавилаа.

Анхаар: Sendmail, Postfix болон бусад майл серверүүдээс системд идэвжсэн байгаа бол зогсоох, хэрэглэхгүй бол бүүр аваад хаясан дээр шүү.

Ажилласан серверийн хувьд:
- Turbo Linux 8 (kernel-2.4.x)
- Red Hat Enterprise Linux AS 2.1 (kernel-2.4.x)

Эхлээд доорх линкээр ороод эсвэл нэрээр нь хайж олоод файлуудыг татаад аваараа.

1.QMAIL
ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz

2.pbs4q
http://mambo.kuhp.kyoto-u.ac.jp/~masahiro/PbS4q/pbs4q-0.2.1.tar.gz

3.Localtime path
ftp://ftp.nlc.net.au/pub/unix/mail/qmail/qmail-date-localtime.patch

4.TCP-SERVER
http://cr.yp.to/software/ucspi-tcp-0.88.tar.gz

5.Checkpassword
http://cr.yp.to/software/checkpassword-0.90.tar.gz

6.cdb
http://cr.yp.to/cdb/cdb-0.75.tar.gz

За тэгээд татаж авсан файлнуудаа задлаад, суулгаж эхлэнэ дээ.

"/usr/local/src" хавтаснаас суулгах ажлыг эхлүүлий гээд

# tar zxvf qmail-1.03.tar.gz
# cp qmail-date-localtime.patch /usr/local/src/qmail-1.03
# cd /usr/local/src/qmail-1.03
# mkdir /var/qmail
# chmod 755 /var/qmail

/usr/sbin/groupadd -g 900 nofiles
/usr/sbin/groupadd -g 901 qmail
/usr/sbin/useradd -g nofiles -u 902 -d /var/qmail/alias alias
/usr/sbin/useradd -g nofiles -u 903 -d /var/qmail qmaild
/usr/sbin/useradd -g nofiles -u 904 -d /var/qmail qmaill
/usr/sbin/useradd -g nofiles -u 905 -d /var/qmail qmailp
/usr/sbin/useradd -g qmail -u 906 -d /var/qmail qmailq
/usr/sbin/useradd -g qmail -u 907 -d /var/qmail qmailr
/usr/sbin/useradd -g qmail -u 908 -d /var/qmail qmails

# cat /etc/passwd

(Системийн бүх хэрэглэгчийн attribute файл шалгах)

# patch -p1 < qmail-date-localtime.patch
# make
# make man
# make setup
# make check

./config-fast xxxxx.ccccccc.com

(xxxxx.ccccccc.com : Mail DNS -iig solikh. Jishee ni "myfreemail.com")

# cd /var/qmail/alias
# touch .qmail-root .qmail-postmaster .qmail-mailer-daemon
# chmod 644 .qmail*

.qmail-root (дотор шинэ хэрэглэгч нэмэх)

/var/qmail/control/

(Dotor uussen doorkh file-uudiig uuriin mail DNS bukhii nereer zasvar khiikh.)

Jishee ni:
me
localhost
xxxxx.ccccccc.com

rcpthosts 
localhost
xxxxx.ccccccc.com

defaultdomain
localhost
xxxxx.ccccccc.com

Сервэрт бүртгэгдсэн хэрэглэгч болгонд "Maildir" гэдэг хавтас үүсгэх хэрэгтэй, өөрөөр хэлбэл qmail -ийн хэрэглэх хавтас (шинээр ирсэн, устгаагүй mail файлууд).
$ /var/qmail/bin/maildirmake $HOME/Maildir
echo ./Maildir/ > ~/.qmail

$ /bin/su -
# /var/qmail/bin/maildirmake /etc/skel/Maildir;
# echo ./Maildir/ > /etc/skel/.qmail

# cp /var/qmail/boot/home /var/qmail/rc

# qmail-start ./Maildir splogger qmail

Sendmail суусан байгаа бол backup хийнэ.
# mv /usr/lib/sendmail /usr/lib/sendmail.bak
# mv /usr/sbin/sendmail /usr/sbin/sendmail.bak
# chmod 644 /usr/sbin/sendmail.bak
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

TCP-SERVER install

# tar zxvf ucspi-tcp-0.88.tar.gz -C /usr/local/src
# cd /usr/local/src/ucspi-tcp-0.88
$ make
$ make setup check

Ccheckpasswd install

# tar zxvf checkpassword-0.90.tar.gz
# cd checkpassword-0.90
# make
# make setup
# make check

/etc/tcp.smtp
(dotor doorkh mayagaar IP zokhitsuulaltuudiig khiikh.)

192.168.1.:allow,RELAYCLIENT=""
127.:allow,RELAYCLIENT=""
172.17.1.:allow,RELAYCLIENT=""
xxx.yyy.zzz.sss:allow,RELAYCLIENT=""
..............

pbs4q install

# tar zxvf pbs4q-0.2.1.tar.gz
# cd /usr/local/src/pbs4q
# make
# make install

Linux achaalakh bolgond QMAIL start khiikhiin tuld "/etc/rc.d/rc.local" dotor nemelt khiine.

##start qmail
csh -cf '/var/qmail/rc &'

##qmail-smtpdl

/usr/local/bin/tcpserver -H -D -l xxxxx.ccccccc.com \
-x /etc/tcp.smtp.cdb \
-c 80 -u 903 -g 900 -v 0 smtp \
/usr/local/bin/rblsmtpd -r relays.ordb.org \
/usr/local/bin/pbs4q2_smtp \
/var/qmail/bin/qmail-smtpd \
2>&1 | /var/qmail/bin/splogger smtpd 3 &

##qmail-pop3d

/usr/local/bin/tcpserver -H -R -D -l xxxxx.ccccccc.com -c 80 -u 0 -g 0 \
-x /etc/tcp.smtp.cdb \
-v 0 110 \
/var/qmail/bin/qmail-popup \
dns-srv.win-group.co.jp \
/bin/checkpassword \
/usr/local/bin/pbs4q1 \
/var/qmail/bin/qmail-pop3d Maildir \
2>&1 | /var/qmail/bin/splogger pop3d 3 &

# shutdown -r now

За дуусав.

mount - Линукс системд файл систем нэмэх

Линукс системийн file tree -д шинээр төхөөрөмж (floppy, CDROM, USB ... диск төхөөрөмжүүд) нэмэхэд "mount" командыг ашиглана.
mount коммандын ерөнхий бичлэг :

# mount -t type device-name director-name
-t : файл системийн төрөл (ext2, ext3, iso9660, msdos, nfs, nfs4, ...)
device-name : Төхөөрөмжийн нэр
director-name : Төхөөрөмжрүү хандах зам

Дэлгэрэнгүй мэдээлэлийг : http://linux.die.net/man/8/mount

Зарим нэг жишээ :

CDROM
mount /mnt/cdrom

Уян диск
mount /mnt/floppy

USB flash диск төхөөрөмж
mount /dev/sda1 /mnt/usb

(Өргөн хэрэглэгддэг төхөөрөмж болон түүний файл системийн мэдээлэл системийн файл "/etc/fstab"-д хадгалагдсан байдаг тул дээрх байдлаар шаардлагатай параметерүүдыг бичихгүйгээр командыг амжилттай гүйцэтгэж болно)

"/dev/hda5" бүхий диск драйверыг EXT3 файл системээр нэмэх:
mount -t ext3 /dev/hda5 /mnt/d

"/dev/hda5" бүхий диск драйверыг FAT32 файл системээр нэмэх:
mount -t vfat /dev/hda5 /mnt/d

"/dev/hda5" бүхий диск драйверыг NTFS файл системээр нэмэх:
mount -t ntfs /dev/hda5 /mnt/d

Нэмсэн төхөөрөмжийг системээс хасах :
umount /dev/device-name
umount /mnt/device-dir

Хамгийн ихээр хэрэглэж буй USB flash диск төхөөрөмжийг хэрхэн нэмэхийг дэлгэрэнгүй бичвэл :

1. USB flash диск төхөөрөмжийг залга.
2. Системийн LOG бичлэгийн файл "/var/log/message" -ийг шалгах. Эндээс бид систем автоматаар шинэ төхөөрөмжийг
ямар төхөөрөмж гэж танисан болохыг харж болно. Доорх командыг ашиглана.

# tail /var/log/messages

3. Төхөөрөмжийн талаарх "sda:sba1, ..." мэдээллийг бид харах болно.
4. Олж авсан "sda1" төхөөрөмжийн нэрийг ашиглан USB flash диск төхөөрөмжийг систэмд нэмэх.
# mount /dev/sda1 /mnt/usb

5. "df" командаар нэмэгдсэн эсэхийг нь шалга.

DF

GZIP / TAR , Архив файлтай ажиллах

Линүкс үйлдлийн систем дээр "gzip, zip, tar, gunzip, unzip" зэрэг коммандуудаар архив файл үүсгэх ба архив файлыг задлана (compress /uncompress). Архив файлуудын ерөнхий форматууд : tar, shar, zip, tar.gz, tar.Z. Доорхи веб хуудаснаас дэлгэрэнгүй мэдээлэл аваараа.

http://www.gzip.org
http://linux.die.net/man/1/tar

Өөрийн гараар тест хийсэн гэдэг юмуу, байнга хэрэглэдэг гэхээр коммандууд бичвэл:

1. Архив файл задлах :

# tar -zxvf Аrchive-file.tar.gz
# tar -xvf Аrchive-file.tar
# gunzip ( Archive-file.tar.gz | tar xvf -
# gunzip ( Archive-file.tgz | tar xvf -

2. Архив файл үүсгэх :
# tar -zcvf Archive-file.tar.gz filenames/folder
# tar -cvf Archive-file.tar filenames/folder
# gtar cvzf Archive-file.tar.gz filenames/folder
# tar cvf - filenames/folder | gzip > Archive-file.tar.gz

3. Жишээнүүд
# tar -cjf Archive-file.tar.bz2 bar/
("*.tar.bz2" архив файл үүсгэх)
# tar -xjf Archive-file.tar.bz2 -C bar/
("*.tar.bz2" архив файл задлах)
# zcat Archive-file.tar.Z | tar xvf -
("*.tar.Z" архив файл задлах)
# unzip Archive-file.zip
("*.tar" архив файл задлах)

Анхаар :
gunzip "*.zip" архив файлыг задалж дийлэхгүй, unzip -ээр задлана.
"*.tar.gz, *.tar" архив файлуудыг MS Windows дээр задлахдаа PowerArchiver, Winrar зэргийг ашиглана.

Dual-Boot Linux and Windows 2000/Windows XP

1. Виндовс 2000/XР суулгана.
Виндовс суулгах явцад хатуу дискийг бэлдэхдээ (жишээ нь эхний sector-уудэд нь виндовс үйлдлийн системийг суулгахаар бодоод хуваа) Виндовс суулгах хэсэгээ тасалж аваад Линүкс суулгах хэсэгээ хуваалт (partition) хийхгүй үлдээнэ. Өөрөөр хэлбэл 100G хатуу диск байлаа гэхэд : Эхний 30G дээр нь Виндовс суулгана гээд хуваалт хийгээд үлдсэн 70G дээр нь Линүкс суулгана гэж бодоод тэр хэсэгээ сул орхино. Тэгээд Виндовс суулгах ажиллагааг цааш нь үргэлжлүүлнэ.

Виндовс суусан компьютер бол, Partition manage хийдэг програмаар (Norton PartitionMagic, гэх мэт) хард дискээ хуваагаад, Өөрөөр хэлвэл Линүкс суух хэсэгээ тасдаад л авна гэсэн уг.

2. Линүкс -ээ суулгана.
Линүкс суулгах явцад автоматаар урьд нь суусан Виндовс-ийг таниад давхар бүүт (dual booting) хийхээр зохион байгуулах ба давхар бүүт -ийг GRUB эсвэл LILO энэ 2-ийн аль нэгийг нь сонгоод (GRUB bootloader нь илүү гэж бодож байна) цааш үргэлжлүүлнэ. Бүүт сонголт хийсний дараа компьютер асаад ямар систем нь эхлээд ачаалахыг заана, заахгүй бол автоматаар Линүкс эхлэх болно. Гэхдээ компьютер асаад POST -ийн дараа Виндовс, Линүкс алийг нь сонгож болох цэс гарах ба эндээс алийг нь эхэлүүлэхээ сонгож болно.

3. Линүкс суулгах явцдаа хатуу дискийг автоматаар сонгож болно, мөн хэрэглэгч өөрөө хувааж бас болно. Хэрэглэгч өөрөө хуваалт хийх нь урд суулгасан системүүдийг гэмтээхгүй / дарахгуй байх сайн тал бий байх гэж бодож байна.

4. Линүкс суулгах ажиллагааг үргэлжлүүлнэ.

Иймэрхүү аргаар нэг компьютерт, нэг хатуу дискэнд хэдэн ч систем хамт суулгаж болох ба хамгийн гол нэг анхаарах зүйл бол хатуу дискний MBR (master boot record) -оос л суулгасан системүүдийг сонгох боломжтой тул олон линүкс суулгах явцад MBR -д нэг удаа л бүүт хийхээр сонголт хийх хэрэгтэй.

(GRUB -г хэрхэн зохицуулах талаар дараа бичнэ ээ.)

HOWTO Install Windows XP on MAC with Boot Camp

Саяханы нэг өдөр Mac үйлдлийн систем суусан Intel based зөөврийн компьютерт Windows XP суулгасан юм. Суулгасан дарааллыг энд тавьж байна. Ажилыг товчхон хэлвэл : (1) Одоо байгаа үйлдлийн системийг Mас OS X Leopard болгон сайжруулах, (2) Windows суухад зориулж хатуу дискийг хуваах, (3) Windows үйлдлийн системээ суулгах, (4) Windows -д зориулсан driver-үүдийг суулгах, (5) Boot (Суусан байгаа үйлдлийн системүүдийн сонголт) сонголт болон бусад ажлууд.

--------------------------
Ажлын систем :
- MacBOOK
- Intel Core 2 Duo processor
- OS : Tiger OS X 10.4.1
--------------------------

1. Mac Tiger OS -ийг Mас OS X Leopard болгон сайжруулах
(Mac Tiger OS дээр Windows суулгаж болохгүй гэнэ ээ.)
- Системийг эхлүүлэх
- "Mас OS X Leopard upgrade DVD" -г CD/DVD drvier-т хийж, идэвхжүүл
- Mас OS X Leopard -ийг суулгах үйл ажиллагаа, ...
- Leopard DVD -г гарган, системийг дахин ажиллуулах

2. Windows суулгахад зориулж хатуу дискийг хуваах
- "Applications"->"Utilities" гэсэн замаар "Boot camp Assistant" -ийг идэвхжүүлэх
- "Manage/create partition table" . . . , хатуу дискийг хуваах
Жишээ нь : 110G (нийт хэмжээ нь) = 50G (Mас -т үлдээгээд) + 60G (WINXP-д зориулан таслан авлаа.)
- Хатуу дискийг хуваасны дараа "Start Windows Instalation" гэсэн товчлуур бүхий дэлгэц солигдох болно.
- "Windows XP install CD" -г drivert хийгээд "Start installation" товчоор цааш ажлыг үргэлжлүүлнэ.

3. Windows XP үйлдлийн системийн суулгалт
- "Start install" товч дарсны дараа систем дахин ачаалах болно. Windows системээр эхлэх ба эндээс эхлээд бидний сайн мэддэг орчин болно доо.
- "Detection hardware, ... select partition/disk" . . . гээд эхэлдэг дээ.
- Хатуу диск сонгох хэсэгт "Select "C: Partition3 [FAT32]." -ийг сонго
- Дараагийн хуудасанд ороод "Format partition using the NTFS file system" гэдэг сонголтоор цааш үргэлжлүүл.

Анхаар: "Convert to NTFS ..." or "Leave current file system ..." гэдэг сонголтийг хийж үл болно.

- Сонгосон дискийг формат хийж Виндовс-ийн файлуудыг хуулах . . .
- Auto restart.
- Хатуу дискнээс Виндовс систем автоматаар эхлэх болно.
- Auto restart . . . auto configuration . . .
- Windows суулгах ажил дууслаа. "Windows install CD" -ийг CD drvier-аас гаргаж ав.

4. Windows XP төхөөрөмжийн driver -үүдийг суулгах
- "Mac OS Leopard upgrade DVD" -г дахин CD drvier-т хийнэ
- "Boot Camp Installation & Setup Guide.pdf" гэдэг файлыг унш.
- "D:\SETUP.EXE" -г идэвхжүүлж төхөөрөмжийн driver-уудыг бүгдийг нь зэрэг суулгах эсвэл "D:\Drivers" гэдэг сангаас төхөөрөмжийн driver-уудийг нэг нэгээр нь суулгаж бас болно.

---------------------

Анхаар :
1. MAC OS / Windows XP OS -ийг сонгохдоо төхөөрөмж АСААХ товч дарсны дараа "alt(option)" товчин дээр хэсэг дарж ДИСК-ний зураг бүхий дэлгэцийг хүлээнэ, . . . ямар дискнээс системийг ажиллуулахыг сонгоно.

2. Windows дээр CD/DVD-г driver-аас хэрхэн гаргаж авах :
"Explorer"-ийг нээж "DVD-RW Drvie(D:)" driver дээрээс хулганы зүүн товчоор туслах цэсэн дэх "Eject" -ийг сонго. Эсвэл "My Computer" -> D driver -ийг сонгоод "File" цэсний "Eject" -ийг сонго.

3. Default системийг сонгох :
- Mac OS X:
"System Preferences" -> "Startup Disk" гэсэн замаар нээгдсэн дэлгэцнээс систем автоматаар ямар үйлдлийн системийг эхэлж ачаалахыг нь сонго.
- Windows XP:
"Control panel" -> "Boot Camp" -> "Startup disk"
гэсэн замаар нээгдсэн дэлгэцнээс систем автоматаар ямар үйлдлийн системийг эхэлж ачаалахыг нь сонго.


VLC - the cross-platform media player and streaming server

VLC media player is a highly portable multimedia player for various audio and video formats (MPEG-1, MPEG-2, MPEG-4, DivX, mp3, ogg, ...) as well as DVDs, VCDs, and various streaming protocols. It can also be used as a server to stream in unicast or multicast in IPv4 or IPv6 on a high-bandwidth network. I tried to compile VLC with all main options.

Source web site: http://www.videolan.org/

-------------------------------------------
My system : RHEL 4 ES (kernel-2.6.9-5)
-------------------------------------------

Check following packages, if not installed, install from Internet and RHEL source CD:

# gettext-0.16.1-1-bin.tar.bz2
# tar xvjf gettext-0.16.1-1-bin.tar.bz2
# cd usr/local
# cp -rp * /usr/local/

Note: Copy source files after tar to related folder (it is for bootstrap from SVN source).

libgpg-error-1.0-1.i386.rpm
libgpg-error-devel-1.0-1.i386.rpm
libgcrypt-1.2.0-3.i386.rpm
libgcrypt-devel-1.2.0-3.i386.rpm

Checkout VLC from SVN server:
# svn co svn://jb@svn.videolan.org/vlc/trunk vlc-trunk
# cd vlc-trunk;
# ./bootstrap
.....
.....

Successfully bootstrapped

******************

Before compile VLC , we have to compile the following packages and libraries :

- x264
The x264 is a library to encode movies in H.264.
Source web site: http://www.videolan.org/developers/x264.html

# cd extras/
# svn co svn://svn.videolan.org/x264/trunk x264
# cd x264/
# ./configure (may be not need)
# make
# cd ..

Also, we installed a x264 from RPM package.
Because, we had error message "x264 librar not exist" during the configure VLC.
# rpm -ivh x264-0.0.0-0.4.20070529.el4.rf.i386.rpm
# rpm -ivh x264-devel-0.0.0-0.4.20070529.el4.rf.i386.rpm

- faac
The faac is a library to encode audio in AAC/MP4A
Source web site: http://www.audiocoding.com/

# tar -zxvf faac-1.26.tar.gz
# cd faac/
# dos2unix *
# patch -p1

Purpose of the patch:
- To avoid warning during bootstrap:

utoreconf: running: aclocal --force
configure.in:10: warning: underquoted definition of MY_DEFINE
run info '(automake)Extending aclocal'

or see http://sources.redhat.com/automake/automake.html#Extending-aclocal

- Error during configuring:

config.status: creating \
.infig.status: error: cannot find input file: \

Note: Source web site of patch: http://research.m1stereo.tv/wiki/index.php/Build_video_enc_env

- faad
The faad is a decoder, AAC (mpeg-4,mpeg-2)
Source web site: http://www.audiocoding.com/

# tar -zxvf faad2-2.6.tar.gz
# cd faad2/
# autoreconf -vif
# ./configure --with-mpeg4ip
# make; make install
# cd ..

- Lame
The lame is a encoder library MPEG Audio Layer III (MP3).
Source web site: http://lame.sourceforge.net/index.php

# tar xvf lame-3.97.tar.gz
# cd lame-3.97/
# ./configure;
# make; make install
# cd ..

- liba52 (a52dec)
The liba52 is a free ATSC A/52 stream decoder.
Source web site: http://liba52.sourceforge.net/

# tar -zxvf a52dec-snapshot.tar.gz
# mv a52dec-0.7.5-cvs liba52
# cd liba52
# ./configure
# make
# make install

Also, we installed a liba52 from RPM package.
Because, we had error message that the source tree not exist during the configure VLC.

# rpm -ivh a52dec-0.7.4-8.el4.rf.i386.rpm
# rpm -ivh a52dec-devel-0.7.4-8.el4.rf.i386.rpm

- ffmpeg
The ffmpeg is a multi-codec library
Source web site: http://ffmpeg.mplayerhq.hu/

# svn co svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
# cd ffmpeg
# ./configure --enable-gpl --enable-pp --enable-pthreads --enable-libmp3lame --enable-libfaac --enable-libfaad --enable-libx264 --enable-liba52
# make
# ldconfig
# ffmpeg -v
libavutil version: 49.5.0
libavcodec version: 51.46.0
libavformat version: 51.15.0
# cd ..

- live
The live is a streaming library.
Source web site: http://live555.com/

# wget http://live555.com/liveMedia/public/live555-latest.tar.gz
# tar xvf live555-latest.tar.gz
# cd live/
# ./genMakefiles linux
# make
# cd ..

- libmpeg2
The libmpeg2 is a MPEG2 video stream decoder.
Source web site: http://libmpeg2.sourceforge.net/

# tar zxvf mpeg2dec-0.4.1.tar.gz
# cd mpeg2dec-0.4.1
# ./configure
# make
# cd ..

Note: During the make, we hade path problem of the source tree.

# mkdir libmpeg2/.libs/.libs
# cp libmpeg2/.libs/libmpeg* libmpeg2/.libs/.libs/

- PortAudio
The portaudio is cross platform audio I/O library and it provide very simple API for recording and/or playing sound a simple callback function.
Source web site: http://www.portaudio.com/

# tar zxvf pa_stable_v19_061121.tar.gz
# cd portaudio
# ./configure
# make; make install

- Libgii
The LibGII is intended to be to input what our LibGGI library is to graphics.
Source web site: http://www.ggi-project.org/packages/libgii.html

# tar zxvf /root/vlc/libgii-1.0.2.src.tar.gz
# cd libgii-1.0.2/
# ./configure
# make; make install
# cd ..

- Libggi
The GGI stands for General Graphics Interface, and it is a project that aims to develop a reliable, stable and fast graphics system that works everywhere.
Source web site: http://www.ggi-project.org/

# tar zxvf /root/vlc/libggi-2.2.2.src.tar.gz
# cd libggi-2.2.2/
# ./configure
# make; make install
# cd ..

- wxWidgets
The wxWidgets gives that easy-to-use API for writing GUI applications on multiple platforms that still utilize the native platform's controls and utilities. Default skin of the VLC is developed by wxWidgets and library of GGI and GII.
Source web site: http://www.wxwidgets.org/

# tar zxvf /tmp/wxWidgets-2.8.6.tar.gz
# cd wxWidgets-2.8.6/
# ./configure --enable-unicode
# make; make install
# ldconfig

- Installing required RPM packages:
During the compile (./configure, make, make install), we have to install following packages which are enabled in configure.

Search and download RPM packages: http://rpm.pbone.net/

libshout-2.2-1.2.el4.rf.i386.rpm
libshout-devel-2.2-1.2.el4.rf.i386.rpm
libdvdcss-1.2.9-3.el4.at.i386.rpm
libdvdread-0.9.7-4.el4.at.i386.rpm
libdvdread-devel-0.9.7-4.el4.at.i386.rpm
libmad-0.15.1b-4.el4.rf.i386.rpm
libmad-devel-0.15.1b-4.el4.rf.i386.rpm
libcdio-0.77-1.el4.rf.i386.rpm
libcdio-devel-0.77-1.el4.rf.i386.rpm
libcddb-1.3.0-1.el4.rf.i386.rpm
libcddb-devel-1.3.0-1.el4.rf.i386.rpm
vcdimager-0.7.23-5.el4.rf.i386.rpm
vcdimager-devel-0.7.23-5.el4.rf.i386.rpm
libsndfile-1.0.17-1.el4.rf.i386.rpm
libsndfile-devel-1.0.17-1.el4.rf.i386.rpm
twolame-0.3.9-1.el4.rf.i386.rpm
twolame-devel-0.3.9-1.el4.rf.i386.rpm
SDL_image-1.2.4-2.el4.i386.rpm
SDL_image-devel-1.2.4-2.el4.i386.rpm
libopendaap-0.4.0-2.el4.rf.i386.rpm
libopendaap-devel-0.4.0-2.el4.rf.i386.rpm
libdca-0.0.5-1.el4.rf.i386.rpm
libdca-devel-0.0.5-1.el4.rf.i386.rpm
libraw1394-0.10.1-3.el4.i386.rpm
libraw1394-devel-0.10.1-3.el4.i386.rpm
libraw1394_8-1.2.1-9_10.el4.i386.rpm
libavc1394-0.4.1-4.el4.i386.rpm
libavc1394-devel-0.4.1-4.el4.i386.rpm
libiec61883_0-1.1.0-0_9.el4.at.i386.rpm
libiec61883-devel-1.1.0-0_9.el4.at.i386.rpm
libfreebob-1.0.0-3.el4.at.i386.rpm
libfreebob-devel-1.0.0-3.el4.at.i386.rpm
jack-audio-connection-kit-0.102.20-3.el4.at.i386.rpm
jack-audio-connection-kit-devel-0.102.20-3.el4.at.i386.rpm
zvbi-0.2.25-1.el4.rf.i386.rpm
zvbi-devel-0.2.25-1.el4.rf.i386.rpm
taglib-1.4-5.1.el4.at.i386.rpm
taglib-devel-1.4-5.1.el4.at.i386.rpm
libmusicbrainz-2.0.2-11.el4.test.i386.rpm
libmusicbrainz-devel-2.0.2-11.el4.test.i386.rpm
libdvbpsi-0.1.5-2.el4.rf.i386.rpm
libdvbpsi-devel-0.1.5-2.el4.rf.i386.rpm
fribidi-0.10.4-6.i386.rpm
fribidi-devel-0.10.4-6.i386.rpm

gnutls-1.0.20-3.i386.rpm
gnutls-devel-1.0.20-3.i386.rpm
hal-0.4.2-1.EL4.i386.rpm
hal-devel-0.4.2-1.EL4.i386.rpm
hal-gnome-0.4.2-1.EL4.i386.rpm
speex-1.0.4.4.i386.rpm
speex-devel-1.0.4.4.i386.rpm
speex-debuginfo-1.0.4-4.i386.rpm

mozilla-***-devel (Success version which I did: 1.7.12-1.4.2)
firefox-XXXXX

Note: Some time we had warning message if we not install following packages.

faad2-2.5-2.el4.rf.i386.rpm
faad2-devel-2.5-2.el4.rf.i386.rpm
portaudio-18_1-3.el4.at.i386.rpm
portaudio-debuginfo-18_1-3.el4.91.at.i386.rpm
lua-5.0.2-1.el4.rf.i386.rpm
lua-devel-5.0.2-1.el4.rf.i386.rpm

********************

- VLC compile

# mkdir linux
# cd linux
#
# ../configure --enable-snapshot --enable-debug --enable-dbus-control --enable-shared --enable-lirc --with-x509-ca-bundle=/etc/ssl/certs/ca-certificates.crt --with-live555-tree=../extras/live --with-ffmpeg-tree=../extras/ffmpeg --enable-taglib --enable-v4l --enable-cddax --enable-dvb --enable-vcdx --enable-realrtsp --enable-svg --enable-dvdread --enable-dv --enable-theora --enable-faad --enable-twolame --enable-real --enable-flac --enable-tremor --with-ffmpeg-mp3lame --with-faac --enable-ncurses --enable-aa --enable-caca --enable-esd --enable-portaudio --enable-jack --enable-xosd --enable-galaktos --enable-goom --enable-ggi --disable-cddax --disable-vcdx --disable-dirac --enable-x264 --disable-xvmc --enable-pvr --enable-loader --enable-audioscrobbler --enable-libcddb --enable-libcdio --enable-opencv --enable-nls --disable-notify --with-libmpeg2-tree=../extras/mpeg2dec-0.4.1 --disable-speex --disable-lua --disable-fluidsynth --disable-gnutls --disable-bonjour --enable-old-dbus --with-included-gettext --enable-skins2 --enable-wxwidgets --enable-mozilla
#
# make
# make install
# ldconfig

Note: For Mozilla and Firefox plugin manage:
# cp -rp mozilla/.libs*.so /root/.mozilla/plugin/
# cp -rp mozilla/.libs*.soT /root/.mozilla/plugin/

- Execute VLC

# vlc
# vlc test-movie.file

URL syntax:
[file://]filename Plain media file
http://ip:port/file HTTP URL
ftp://ip:port/file FTP URL
mms://ip:port/file MMS URL
screen:// Screen capture
[dvd://][device][@raw_device] DVD device
[vcd://][device] VCD device
[cdda://][device] Audio CD device
udp:[[]@[][:]]

Stream in HTTP:

* On the server, run:
# vlc -vvv /var/www/html/hd/shuttle.mpg --sout udp://10.10.10.1 --ttl 12

* On the client(s), run:
# vlc udp://@:1234

Using the HTTP, downloading video stream:

* On the server, start HTTP apache server:
# /etc/init.d/http start

* On the client(s), run VLC with video file:


VLS video player

How to create and use a patch in Linux

[diff: ] http://linux.about.com/library/cmd/blcmdl1_diff.htm
[patch:] http://linux.about.com/od/commands/l/blcmdl1_patch.htm

Creating a Patch File:

(Creating a patch file by single file)

# ls old/
myfile.c
# ls new/
myfile.c

# diff -Naur old/myfile.c new/myfile.c > my-patch

# more my-patch
--- old/myfile.c 2006-01-01 17:09:19.000000000 +0900
+++ new/myfile.c 2007-01-01 14:04:11.000000000 +0900
@@ -1,6 +1,6 @@
#include

-#define perror(s1, s2) printf("%s: %d \n", (s1), (s2))
+#define perror(s1, s2) printf("%s: %s \n", (s1), (s2))

(Creating a patch file by folder)

# ls -ls
8 drwxr-xr-x 2 root root 4096 Aug 8 14:04 new
8 drwxr-xr-x 2 root root 4096 Aug 8 14:25 old

# diff -Naur old new > my-patch-byfolder

# more my-patch-byfolder
diff -Naur old/myfile.c new/myfile.c
--- old/myfile.c 2006-01-01 17:09:19.000000000 +0900
+++ new/myfile.c 2007-01-01 14:04:11.000000000 +0900
@@ -1,6 +1,6 @@
#include

-#define perror(s1, s2) printf("%s: %d \n", (s1), (s2))
+#define perror(s1, s2) printf("%s: %s \n", (s1), (s2))

The first symbol of each line (+, -, and a blank):

(+) would indicate that this line is to be added.
(-) would indicate that this line is to be removed.

************************

Applying a Patch:

Just change to the correct directory and give the patch command.

# patch -p0

Levels (-p0,-p1, ...etc) in the Patch Command:

# patch -p0

The -p option will optionally strip off directory levels from the patch-file.

- Using a -p0 will expect, from your current working directory, to find a subdirectory called "new", then the "myfile.c" file below that.
- Using a -p1 will strip off the 1st level from the path and expect to find "myfile.c" in the current working directory.
Patch will ignore the "new" directory mentioned in the header of the patch-file.
- Using a -p2 in this example, patch probably would not patch anything.

Starting SVN server with xinetd

Subversion home :
http://svn.subversion.com/
Subversion document folder:
http://subversion.tigris.org/servlets/ProjectDocumentList

-------------------------------------
My system : Redhat EL4 Linux with kernel 2.6.9
-------------------------------------
1. Check/install svn packages

# svn
svn
svnadmin
svnversion
.....

# which svn
/usr/bin/svn

# which svnserve
/usr/bin/svnserve

2. Adding svn new user
# adduser svnversion

3. Create config file "/etc/xinetd.d/svnserve"
# vi /etc/xinetd.d/svnserve

#
# Subversion server
# service svnserve
{
socket_type = stream
protocol = tcp
user = subversion
wait = no
disable = no
server = /usr/bin/svnserve
server_args = -i -r /home/svn
}
.... save

4. Restart xinetd

5. Create repository
# su subversion% svnadmin create /usr/local/svn/my-projects

6. Change config file "../SVN/rep../conf/svnserve.conf"
# vi /home/svn/my-rep../conf/svnserve.conf

[general]
anon-access = readwritenone (default read)
auth-access = readwritenone (default write)

# /etc/init.d/xinetd restart

Sample subversion commands

SVN:Subversion Source Code Management System :
http://svn.subversion.com/
Subversion document folder:
http://subversion.tigris.org/servlets/ProjectDocumentList
-------

Get info on particular folder or file

# svn info
# svn info myfile.c

List folder:
# svn ls -v svn://address/branches/myfolder

Create new folder on the SVN server, branches folder:
# svn mkdir -m "Make dir ... mesages" svn://address/branches/myfolder

Copy local folder to SVN server, branches folder:
# svn copy -m "Copy ... messages" myfolder svn://address/branches/myfolder
(copy from/to repository)
# svn copy -m "Copy ... messages" svn://address/branches/myfolder svn://address/branches/myfolder/myfile.c

Delete current folder/files:
# svn delete -m "delete ... messages" svn://address/branches/myfolder
# svn delete -m "delete ... messages" svn://address/branches/myfolder/myfile.c
# svn rm -m "delete ... messages" svn://address/branches/myfolder/myfile.c
# svn rm -m "delete ... messages" myfile1.c myfile2.c

Display log message of the current folder, files
# svn log svn://address/branches/myfolder/
# svn log svn://address/myfolder/myfile.c
(from working folder/checkout folder)
# svn log myfile.c
# svn log -r RANGE_NO

Download current folder,files from SVN repository
# svn export svn://address/branches/myfolder myfolder

Checkout folder -> Change -> Commit it to SVN repository
# svn checkout svn://address/branches/myfolder ./myfolder
# vi myfile.c
# svn commit -m "Commit ... messages"

Examine your changes/Show your modifications
# svn diff myfile.c
(between myfile.c and current revision of myfile.c)
# svn diff (diff for all files)
# svn diff -r 114 (diff between revision 114 and local working folder file)
# svn diff -r 114:115 (diff between revisions 114 and 115)

Examine/display SVN status
# svn status -u (-u, -v : more information)
# svn status -u -v

HOW-TO compile the Linux kernel

There are common three reasons for a recompile a kernel.

1. You have some new hardware that your current kernel of linux distributuion could not detect it.
(You want to add kernel module of the new hardware)
2. You may have come across some kind of bug which is fixed in a revision of the operating system.
3. You may have some new software which requires a newer version of the operating system.

*****************
1. We can download the new kernel source and new patches from the Linux kernel archive web site. Web : http://www.kernel.org

2. Check the current kernel packages:

# rpm -qa | grep kernel*
Or
# uname -a

3. Preparing for Kernel update
Before build new kernel, you need to install Qt, Qt-devel and Qt-config which are used "make xconfig". If you do not need to use xconfig, do not to do this step.
# rpm -ivh qt*.rpm
or
(If you use Redhat distribution, you can use up2date command.)
# up2date qt
# up2date qt-config
# up2date qt-devel

To check installed QT packages
# rpm -qa | grep qt
qt-devel-xxxx
qt-config-xxxx
qt-xxxx

****************
Compile the Linux kernel (from RPM package)

4. Obtain the kernel source "kernel-.src.rpm" file from one of the following sources:
- The SRPMS directory on the appropriate SRPMS CD iso image.
- The FTP site where you got the kernel package.
- By running the command "up2date" (if you use redhat linux)

# up2date --get-source kernel

5. Install kernel source (kernel-.src.rpm) using the command "rpm".
# rpm -Uvh kernel-.src.rpm

This writes the RPM contents into "/usr/src/redhat/SOURCES" and "/usr/src/redhat/SPECS".

6. Prepare the kernel sources using the command "rpmbuild".
# cd /usr/src/redhat/SPECS
# rpmbuild -bp --target $(arch) kernel-2.6.spec
Here :
--target $(arch) - current system architecture (exm: i386, etc.)

The kernel source tree will be located in the "/usr/src/redhat/BUILD/kernel-" directory.
To move the resulting "linux-" directory to the "/usr/src" tree.
# cd /usr/src/redhat/BUILD/
# mv linux- /usr/src/
# cd /usr/src
# ln -s ./linux- linux
# cd /usr/src/linux

7. The configurations for the specific kernels find from the "configs/" directory.
For example, the i386 SMP configuration file is named "configs/kernel--i386-smp.config".
Issue the following command to place the desired configuration file in the proper place for building:

# cp configs/xxxxx .config
We can also find the ".config" file that matches current kernel configuration in the "/lib/modules//build/.config" file.

8. Every kernel gets a name based on its version number which displayed the output of command "uname ?r".
The kernel name is defined by the first four lines of the kernel Makefile.
You have to edit the kernel Makefile.
Example, If command "uname -r" returns the string "2.6.9-5", we changed the EXTRAVERSION definition from this:
EXTRAVERSION = -pre
to this:
EXTRAVERSION = -5_NEW

9. Change old kernel configuration (.config) to new configuration.
# make oldconfig
"oldconfig" which is read the defaults from an existing .config and rewrite necessary links and files.
Note that oldconfig will only work within the same major version of the kernel.
# make xconfig

"xconfig" is an X Window based frontend. It requires the Tcl/Tk, QT development tools and X libraries to work.

10. To configure and build the kernel
# make all

11. Build modules
# make modules_install
# make install

Note: The command "make install", it will create following files in the "/boot" folder and configure the boot loader configuration file.
"vmlinuz-",
"initrd-.img",
"System.map-"

****************
Compile the Linux kernel (from TAR package)

4. Obtain the kernel source "kernel-.tar.gz" file from Linux Kernel archives or other Kernel mirror site.
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.13-5.tar.gz

5. Unpack the kernel source file (kernel-xxx.tar.gz or kernel-xxx.tar.bz2) using the command "tar".
# tar -xvfz kernel-xxx.tar.gz
# tar -xvfj kernel-xxx.tar.bz2

6. To move the result "linux-" directory to the "/usr/src" tree.
# mv linux- /usr/src
# cd /usr/src/
# ln -s ./linux- linux
# cd /usr/src/linux

7. The configurations for the specific kernels find from the "configs/" directory.
For example, the i386 SMP configuration file is named "configs/kernel--i386-smp.config".
Issue the following command to place the desired configuration file in the proper place for building:

# cp configs/xxx .config
We can also find the ".config" file that matches current kernel configuration in the "/lib/modules//build/.config" file.

8. Every kernel gets a name based on its version number which displayed the output of command "uname ?r".
The kernel name is defined by the first four lines of the kernel Makefile.
You have to edit the kernel Makefile.
Example, If command "uname -r" returns the string "2.6.9-5", we changed the EXTRAVERSION definition from this:
EXTRAVERSION = -pre
to this:
EXTRAVERSION = -5_NEW

9. Change old kernel configuration (.config) to new configuration.
# make oldconfig

"oldconfig" which is read the defaults from an existing .config and rewrite necessary links and files.
Note that oldconfig will only work within the same major version of the kernel.
# make xconfig

"xconfig" is an X Window based frontend. It requires the Tcl/Tk, QT development tools and X libraries to work.

10. To configure and build the kernel
# make all

11. Build modules
# make modules_install
# make install

Note: The command "make install", it will create following files in the "/boot" folder and configure the boot loader configuration file.
"vmlinuz-",
"initrd-.img",
"System.map-"

Enjoy youtube video : "How to compile linux kernel"


Note: Using this manual, I compiled following Linux distribution/Kernel :
- Redhat 9 , kernel 2.4.20 -> 2.4.20
- RHEL 4 , kernel 2.6.9-5 -> 2.6.(10,11,12,13,14,15,16,17)
- SUSE Linux 10.0 , kernel 2.6.13 - 2.6.13
- Fedora 4/5/6 , kernel 2.6.X -> 2.6.X

XINE free video player
(GNU and for Linux, FreeBSD, Solaris, Windows, ... )

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

Web : http://xinehq.de/

1. XINE болон сангуудыг суулгах

# cd xine-lib 1.1.4
# ./configure
# make
# make install

( skinned xlib-based gui )
# cd xine-ui 0/99.4
# ./configure
# make
# make install

2. Mozilla Firefox веб хөтлөгчийн XINE plugin "xine-plugin" суулгах:
# cd xine-plugin 1.0
# ./configure
# make
# make install
# cp ~/.mozilla/plugins/xineplugin.* /usr/lib/mozilla/plugins/
(Note: "/usr/lib/" - зөвхөн миний тохиолдолд)

3. Програмыг эхлүүлэх
# xine
# xine 'http://URL/sumo.wmv'
# xine 'file://file-path/sumo.wmv'
# xine 'DVD://VTS_01_1.VOB'

XINE media player

(Note: Энэхүү суулгах аргыг хэрэглэсэн систем:
RHEL4 and SUSE 10.0 linux.)

HOW-TO Install Madwifi, Linux device driver for wireless LAN chipsets from Atheros

Madwifi is project provides a Linux kernel device driver for Atheros chipset based Wireless LAN device. We have Madwifi-old, Madwifi-ng and official release Madwifi-0.9.x drivers.
Web :
http://www.madwifi.org/
http://www.madwifi.net/

-----------------------------------------
My system :
- RHEL 4 with kernel 2.6.9-5 and 2.6.13-5
- SUSE Linux 10.0 with kernel 2.6.13
Wireless driver : Madwifi-ng , Madwifi-old , Madwifi-0.9.2
Wireless device : ATERM WL54AG
-----------------------------------------

Зайлшгүй шаардагдах нөхцөл:
- GCC compiler collection
- Ашиглаж буй системийн цөм (kernel)-ийн эх код ("source -> /usr/src/linux-XXXXX" байдлаар холбоос үүссэн байх.)
- Ашиглаж буй системийн цөмд "Wireless Extensions" дэмжигдсэн байх.

1. Download the Madwifi wireless driverCheckout current Madwifi driver (madwifi-ng) from madwifi.org with subversion
# cd /usr/local/src
# svn list http://svn.madwifi.org/trunk
# svn checkout http://svn.madwifi.org/trunk madwifi-0.9.2
or
# svn checkout http://svn.madwifi.org/branches/madwifi-old

2. Compile Madwifi driver
# cd madwifi-ng
# make
# make install

3. After compile, Madwifi drivers are loaded at: /lib/modules/`uname -r`/net
# ls -ls /lib/modules/`uname -r`/net
ath_hal.ko
ath_pci.ko
ath_rate_sample.ko
wlan_acl.ko
wlan_ccmp.ko
wlan.ko
wlan_scan_ap.ko
wlan_scan_sta.ko
wlan_tkip.ko
wlan_wep.ko
wlan_xauth.ko

4. Installing Madwifi modules
We need to use the countrycode option (exm: Japan = 392) when loading the madwifi driver.
# modprobe ath_pci countrycode=392
# lsmod
. . . . . . . . .
ath_pci 110628 0
ath_rate_sample 13056 1 ath_pci
wlan 199004 6 wlan_scan_sta,ath_pci,ath_rate_sample
ath_hal 189008 5 ath_pci,ath_rate_sample
. . . . . . . . .

5. To make this happen during boot, add the following to modprobe config file “/etc/modprobe.conf”.
options ath_pci countrycode=392 (Japan:392)

6. Configuring device (athX) interface
- Wireless network interface name : "ath0"
- Operation mode = master/station/adhoc
- Channel = between 1 and 14
- ESSID = "TEST"

- Destroy madwifi device which detected automaticly
# wlanconfig ath0 destroy

- Create new madwifi-ng driver
# wlanconfig ath0 create wlandev wifi0 wlanmode ap

- ESSID , channel, ... setup
# iwconfig ath0 essid CAP11 channel 3

- Network IP, Netmask, ... setup
# ifconfig ath0 192.168.61.1 broadcast 192.168.61.255 netmask 255.255.255.0 up

7. Display wireless network Interface configuration

Display network interface configuration
# ifconfig ath0

Display wireless network interface configuration
# iwconfig ath0

8. Some usefull commands to display wireless information
# cardctl ident
Socket 0:product info: "NEC AccessTechnica, Ltd.", "AtermWL54AG(PA-WL/54AG)", "1.0", " "manfid: 0x0010, 0x0012function: 6 (network)

# lspci
...........
05:02.0 CardBus bridge: Ricoh Co Ltd RL5c475 (rev 80)06:00.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)

HOW-TO Install Host AP driver for Intersil Prism2/2.5/3

Host AP is a Linux driver for Intersil Prism 2/2.5/3 chipset based wireless network card. More information and current version of Host AP driver and hostap-utils can be acquiring following site: http://hostap.epitest.fi/

------------------------------------
My system :
- RHEL 4 with kernel 2.6.9-5 and 2.6.13-5
- SUSE Linux 10.0 with kernel 2.6.13
Wireless driver : Hostap-driver-0.4.7.tar.gz
Hostap-Util : Hostap-utils-0.4.7.tar.gz
Wireless card : PLANEX GW-CF11X
------------------------------------

1. Building Host AP driver.

# tar -zxvf hostap-driver-0.4.7.tar.gz
# cd hostap-driver-0.4.7

We have to change Makefile before compile Host AP driver. Edit the kernel path “KERNEL_PATH” in Makefile to math current system. Our case, we compiled kernel from the path “/usr/src/linux (KERNEL_PATH=/usr/src/linux).
# make
# make install

2. Add hostap modules to kernel.
# modprobe hostap_pci
or
# modprobe hostap
# modprobe hostap_cs

3. Check the kernel modules list.
# lsmod grep hostap
hostap_pci 67609 0
hostap 121096 1 hostap_pci
or
# lsmod grep hostap
hostap_cs 75288 3
hostap 141192 1 hostap_cs
pcmcia 42548 9 hostap_cs

4. After load the Host AP modules, we need to add wireless network PCMCIA card model information into config file (/etc/pcmcia/hostap_cs.conf). Identify the current plugged wireless card.
# cardctl ident
Socket 0: product info: "PLANEX COMMUNICATIONS INC.", "PLANEX GW-CF11X Wireless CF Card", "", ""
manfid: 0xd601, 0x0010
function: 6 (network)

5. Add following string into config file "/etc/pcmcia/hostap_cs.conf".
card "PLANEX GW-CF11X Wireless CF Card"
manfid 0xd601, 0x0010
bind "hostap_cs"

6. Installing Hostap-utils
Unpack the package and run the “make all” to build Hostap-utils.
# tar -zxvf hostap-utils-0.4.7.tar.gz
# cd hostap-utils-0.4.7
# make all

Copy following files to "/usr/bin" folder after built Hostap-utils.
- hostap_crypt_conf
- hostap_diag
- hostap_fw_load
- hostap_io_debug
- hostap_rid
- prism2_param

7. Check the wireless card
# iwconfig wlan0

Wifi0 IEEE 802.11b ESSID:""
Mode: Managed . . . . . .

wlan0 IEEE 802.11b ESSID:""
Mode: Managed . . . . .

8. THE END

HOW-TO install Orinoco wireless driver

The Linux Orinoco Driver supports a wide range of wireless network interface cards implementing 802.11b standard.

---------------------------------------------
My system :
- Redhat 9 Linux with kernel 2.4.20
- Wireless card :“BUFFALO WLI-CF-S11G”.

---------------------------------------------

1. Download and compile "orinoco" wireless PCMCIA card driver.
Download site : http://sourceforge.net/projects/orinoco

# tar xvfz orinoco-0.15rc2.tar.gz
# cd orinoco-0.15rc2
# make all
# make install

# /etc/init.d/pcmcia restart

2. Check the card type.
# cardctl ident
Socket 0: product info: "BUFFALO", "WLI-CF-S11G", "", ""
manfid: 0x026f, 0x030b
function: 6 (network)

3. Add following string inside the config file "/etc/pcmcia/config".
card "Buffalo WLI-CF-S11G"
manfid 0x026f, 0x030b
bind "orinoco_cs"

4. Restart PCMCIA
# /etc/init.d/pcmcia restart

5. Check the list of installed modules, command : "lsmod" You can see module column "orinoco*"
# lsmod
....
orinoco_cs .........

6. THE END