KM-LABADMIN

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 7-10-2559
อัปเดตโดย วิบูลย์ วราสิทธิชัย

KM การใช้ลินุกซ์ใน PSU12-Sritrang Server

เตรียม
A. ให้ดาวน์โหลด kmlabadmin.ova จากที่นี่
ftp://ftp.psu.ac.th/pub/psulab/kmlabadmin/kmlabadmin.ova
B. ให้ตั้งค่า VirtualBox Setting ให้ชี้ Default Machine Folder ไปที่ D:\
C. ให้ import VM จากไฟล์ kmlabadmin.ova
D. เปิดใช้งาน VM myrouter-gui และ myPSU12-Sritrang
E. มีหรือสร้างใหม่ VM เปล่า 1 เครื่อง ชื่อ mywindows7 มี memory 768 MB, hard disk size 20 GB
network แบบ internal network ชื่อ intnet
F. ทำขั้นตอน cloning (restore) เพื่อให้เครื่อง mywindows7 มี Windows7 เหมือนที่ backup (/var/www/cloning/zone1/zone1-sda1-N.gz) ไว้ใน myPSU12-Sritrang

การใช้ลินุกซ์ (Linux)
1. คำสั่ง sudo, sudo su, sudo su -
เพื่อเปลี่ยนเข้าสวมสิทธิ์ root (ใหญ่สุด)
ออกด้วยคำสั่ง exit

2. คำสั่ง passwd
เพื่อเปลี่ยนรหัสผ่านของ users คือ mama, papa, prnews, sendfile

3. คำสั่ง ls
เพื่อตรวจดูรายชื่อไฟล์
ตรวจสอบดูตำแหน่งไดเรกทอรีที่เกี่ยวข้องกับการ cloning
ดู file owner
ดู file permission

4. คำสั่ง wget
เพื่อดาวน์โหลดไฟล์ใหม่ หรือ update file ที่มีอยู่ให้ใหม่กว่าเดิม
wget http://10.0.100.251/dhcpd.txt

5. คำสั่ง more หรือ less
เพื่ออ่านข้อมูลในไฟล์

6. คำสั่ง cp, mv, mkdir
เพื่อคัดลอกไฟล์, ย้ายหรือเปลี่ยนชื่อไฟล์, สร้างไดเรกทอรี

7. คำสั่ง vi
เพื่อจัดการ block ข้อมูลคราวละหลายๆบรรทัด

8. คำสั่ง sed
เพื่อการแก้ไขข้อมูลที่อยู่ในไฟล์ โดยไม่ต้องใช้ editor vi เข้าไปแก้

9. คำสั่ง | (ออกเสียง ไปป์), grep, cut, awk
เพื่อการเลือกส่วนของข้อมูล

10. คำสั่ง ssh
เพื่อเข้าไปทำงานเครื่อง server ที่ต้องการ โดยต้องใส่รหัสผ่าน
เช่น
ssh mama@10.0.100.1

11. คำสั่ง ssh-keygen และ ssh-copy-id
เพื่อสร้าง server key และนำ private key ไปฝากไว้ในเครื่องที่ต้องการ
เพื่อเข้าไปทำงานเครื่องที่ต้องการด้วย username เดียวกัน โดยไม่ต้องใส่รหัสผ่าน
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub mama@10.0.100.1
ทดสอบ
ssh mama@10.0.100.1

12. ติดตั้ง sshfs
เพื่อให้มีบริการพื้นที่ชนิด sshfs
ติดตั้ง sshfs
apt-get install sshfs
สร้างพื้นที่ mount point
mkdir /mnt/custom
คำสั่ง mount เพื่อต่อกับ sshfs ด้วย user ชื่อ mama ที่เครื่อง 10.0.100.1
sshfs mama@10.0.100.1:/home/mama /mnt/custom
คำสั่งตรวจสอบ
mount -l
คำสั่งหยุด mount
fusermount -u /mnt/custom

13. คำสั่ง sshfs
เพื่อการ Backup Windows7/8 OS แบบ manual และ partition size เท่าเดิม
บูตแผ่น sysresccd
sshfs mama@10.0.100.1:/home/mama /mnt/custom
mount -l
dd if=/dev/sda bs=512 count=2048 of=/mnt/custom/windows7-sda.mbr
sfdisk -d /dev/sda > /mnt/custom/windows7-sda.part
ntfs-3g /dev/sda1 /mnt/windows
rm -f /mnt/windows/pagefile.sys
umount /mnt/windows
ntfsclone -s -o - /dev/sda1 | gzip -c > /mnt/custom/windows7-sda1-n.gz
fusermount -u /mnt/custom
mount -l
poweroff
เอาแผ่น sysresccd ออก

เพื่อการ Restore Windows7/8 OS แบบ manual และ partition size เท่าเดิม
บูตแผ่น sysresccd
sshfs mama@10.0.100.1:/home/mama /mnt/custom
mount -l
cat /mnt/custom/windows7-sda.mbr | dd of=/dev/sda
cat /mnt/custom/windows7-sda.part | sfdisk /dev/sda -O -
cat /mnt/custom/windows7-sda1-n.gz | gunzip -c | ntfsclone -r -O /dev/sda1 -
fusermount -u /mnt/custom
mount -l
poweroff
เอาแผ่น sysresccd ออก

14. คำสั่ง mount เพื่อต่อ local disk อาจเป็น disk อีกลูก หรือ USB External Hard disk
เพื่อเป็นเนื้อที่สำหรับสำรองไฟล์และไดเรกทอรีสำคัญของ PSU12-Sritrang
/home/papa/macinzone
/etc/dhcp/dhcpd.conf
/var/www/
และถ้าต้องการ boot menu ด้วย
/var/lib/tftpd/sysresccd/zone*

15. คำสั่ง mount เพื่อต่อกับ nfs
ติดตั้ง nfs เพื่อให้มีบริการพื้นที่ชนิด nfs
เพื่อเป็นเนื้อที่ใหม่สำหรับ /var/www/cloning/zone2
nfs server (myroutergui 10.0.100.1)
sudo mkdir /nfsdisk
sudo chmod 777 /nfsdisk
sudo apt-get install nfs-kernel-server
sudo cp -a /etc/exports /etc/exports.backup
sudo nano /etc/exports
/nfsdisk 10.0.100.0/24(rw,async,insecure,no_subtree_check,nohide)
ctrl+x to save
sudo exportfs -ra
sudo service nfs-kernel-server restart

nfs client (PSU12-Sritrang server)
bash /root/scripts/makezone.sh 2
apt-get install nfs-common
mount -t nfs -o proto=tcp,port=2049 10.0.100.1:/nfsdisk /var/www/cloning/zone2
echo hello > /var/www/cloning/zone2/hello.txt
ls -l /var/www/cloning/zone2
umount /var/www/cloning/zone2
ตั้งอัตโนมัติ mount nfs เมื่อเปิดเครื่อง
nano /etc/fstab
10.0.100.1:/nfsdisk /var/www/cloning/zone2 nfs auto 0 0

16. คำสั่ง nc
เพื่อส่งข้อความผ่านเครือข่ายไปที่เครื่องที่ต้องการ
เครื่องปลายทาง (เช่น เครื่อง 10.0.100.1 นี้เปิด port TCP 12345)
nc -n -v -l -p 12345
เครื่องต้นทาง
nc -n -v 10.0.100.1 12345

17. คำสั่ง nc
เพื่อส่งไฟล์ผ่านเครือข่ายไปที่เครื่องที่ต้องการ
เครื่องปลายทาง (สมมติ 10.0.100.1)
step 1/2
nc -n -v -l -p 12345 | tar -xvf -
เครื่องต้นทาง
บูตด้วยแผ่น sysresccd
step 2/2
ส่งไฟล์ที่อยู่ในไดเรกทอรีชื่อ icons
tar -cvf - icons | nc -n -v 10.0.100.1 12345

18. คำสั่ง nc
เพื่อการโคลนนิ่ง Windows OS แบบ manual และ partition size เท่าเดิม

windows cloned (ปลายทาง)
เอาแผ่น sysresccd ใส่
ตรวจสอบหมายเลยไอพี (สมมติได้ผลลัพธ์ 10.0.100.230)
ifconfig
ทำการโคลนนิ่ง
step 1/6
nc -n -v -l -p 12345 | dd of=/dev/sda
step 3/6
nc -n -v -l -p 12345 | sfdisk /dev/sda -O -
step 5/6
nc -n -v -l -p 12345 | gunzip -c | ntfsclone -r -O /dev/sda1 -
poweroff
นำแผ่น sysresccd ออก

windows master (ต้นทาง)
เอาแผ่น sysresccd ใส่
step 2/6
dd if=/dev/sda bs=512 count=2048 | nc -n -v 10.0.100.230 12345
จบด้วยกด Ctrl + c เมื่อส่ง/รับข้อมูลเสร็จ
step 4/6
sfdisk -d /dev/sda | nc -n -v 10.0.100.230 12345
จบด้วยกด Ctrl + c เมื่อส่ง/รับข้อมูลเสร็จ
step 6/6
ntfsclone -s -o - /dev/sda1 | gzip -c | nc -n -v 10.0.100.230 12345
จบด้วยกด Ctrl + c เมื่อส่ง/รับข้อมูลเสร็จ
poweroff
นำแผ่น sysresccd ออก

19. คำสั่ง nc
เพื่อการโคลนนิ่ง Linux OS แบบ manual และ partition size เท่าเดิม

linux cloned (ปลายทาง)
เอาแผ่น sysresccd ใส่
ตรวจสอบหมายเลยไอพี (สมมติได้ผลลัพธ์ 10.0.100.232)
ifconfig
ทำการโคลนนิ่ง
step 1/6
nc -n -v -l -p 12345 | dd of=/dev/sda
step 3/6
nc -n -v -l -p 12345 | sfdisk /dev/sda -O -
step 5/6
nc -n -v -l -p 12345 | partclone.extfs -r -C -R -o /dev/sda1
poweroff
นำแผ่น sysresccd ออก

linux master (ต้นทาง)
เอาแผ่น sysresccd ใส่
step 2/6
dd if=/dev/sda bs=512 count=2048 | nc -n -v 10.0.100.232 12345
จบด้วยกด Ctrl + c เมื่อส่ง/รับข้อมูลเสร็จ
step 4/6
sfdisk -d /dev/sda | nc -n -v 10.0.100.232 12345
จบด้วยกด Ctrl + c เมื่อส่ง/รับข้อมูลเสร็จ
step 6/6
partclone.extfs -c -C -R -s /dev/sda1 -I --ignore_crc -o - | nc -n -v 10.0.100.232 12345
จบด้วยกด Ctrl + c เมื่อส่ง/รับข้อมูลเสร็จ
poweroff
นำแผ่น sysresccd ออก

20. คำสั่ง useradd, userdel, usermod
เพื่อจัดการบัญชีผู้ใช้ชนิด linux account

21. ชุดคำสั่งที่เรียกว่า shell script
ดาวน์โหลดตัวอย่าง bulkuseradd.sh
wget http://ftp.psu.ac.th/pub/psu-installer/bulkuseradd/bulkuseradd.sh