Upload
chatchai-jantaraprim
View
168
Download
3
Embed Size (px)
Citation preview
Linux Server Admin
Linux Admin's Tasks
Chatchai J.2012-11-09
Bootup and Shutdown Linux
● boot … เปิดเครือ่ง แลว้ grub ควรจะทำำงำนตำมปกติในกำรเลอืก default kernel ทีจ่ะใชส้ำำหรบักำร boot
● ม ีboot loader ตัวอืน่ นอกจำก grub ให้ใชง้ำนได้ แต่สำำหรบั x86 system และใชง้ำนบนเครือ่งทัว่ไป ควรใช ้grub
● อีกทำงเลอืกหนึง่คอื syslinux
– ใช้สำำหรับ boot จำก CD (เช่น แผน่ install linux)
Bootup (cont)
● Linux kernel-version (recovery mode) จะใช้สำำหรับกำร boot เขำ้ linux ในกรณีที ่service ในกำรทำำงำนปกติมีปัญหำ เช่น network
config มีปัญหำ หรือ ไม่สำมำรถเขำ้ที ่console ได้● กำรเลือกใช้ console ใช้ ALT+F1 .. ALT+F6
– ALT+F7 ใช้สำำหรับกำร switch graphics mode ถำ้ตดิตัง้ X-Windows
● ถ้ำอย่่ใน X-Windows ใช้ CTRL+ALT+F1 เพือ่เลือก tty1
● ตอนนี ้ไม่ม ีX-Windows เพรำะฉะนัน้ ไม่ต้องสนใจก่อน!
Bootup (cont)
● Bootup ใน recovery mode
● ตอน boot จะแสดง message ว่ำกำำลังทำำอะไรบ้ำง● start network แต่ไม่ start services
● จะต้องกำร root password เพือ่เข้ำไปทำำงำน● ถ้ำกดป่่ม CTRL+D ก็จะเหมือนเลือก boot ใน mode ปกติ จะทำำงำนต่อ
– recovery mode จะทำำ runlevel 1
– normal mode จะทำำ runlevel 2 ต่อ
Bootup (cont)
● ขัน้ตอนกำร Boot ของ Linux PC
ภำพจำก thegeekstuff.com
Bootup (cont)
● Linux– kernel (init hardware and other stuff)
– execute /sbin/init
– /sbin/init ใช้ /etc/inittab สำำหรับ config
– script ใน /etc/init.d/ สำำหรับกำร start/stop
services
Bootup (cont)
● /etc/inittab
– ระบ่กำรทำำงำน โดยใช้ runlevel
● 0 : Halt● 1 : Single-User● 2-5 : Multi-User● 6 : Reboot
– debian ใช้ default runlevel = 2
Bootup (cont)
● first boot run /etc/init.d/rcS● each runlevel run /etc/init.d/rc N
– for runlevel N
● run
/etc/rcN.d/KNN-script (kill/stop script)
/etc/rcN.d/SNN-script (start script)
● เมือ่กอ่น run ตำมลำำดับ, ตอนนี ้script บำงตัว run แบบ parallel กนัได้ โดยกำรกำำหนด dependency
Bootup (cont)
● สำมำรถ enable / disable service ทีม่ีอย่่ (สำำหรับ กำร bootup / shutdown ครัง้ต่อไป) ได้ โดยใช้คำำสัง่ update-
rc.d
# update-rc.d ssh disable
# ls -l /etc/rc2.d/ | grep ssh
# update-rc.d ssh enable
# ls -l /etc/rc2.d/ | grep ssh
Bootup (cont)
● ถ้ำต้องกำรเพิม่ คำำสัง่ / script แบบ local
สำมำรถเพิม่ใน /etc/rc.local ได้ จะ execute
เป็น คำำสัง่เกือบท้ำยส่ด ใน sequence
Shutdown
● Shutdown เพือ่ปิดเครือ่ง# /sbin/shutdown -h now
● สัง่ reboot เครือ่ง# /sbin/shutdown -r now
● สำมำรถระบเ่วลำอืน่ๆ แทนที ่'now' ได้# /sbin/shutdown -h 12:00
Shutdown (cont)
● shutdown คือกำร init runlevel 0,6 แล้วแต่กรณี# init 6
# init 0
● ไม่ควร power-off/unplug power เครือ่งโดยไม่ shutdown (เป็นเรือ่งสำำคัญ สมัยก่อน แต่ไม่สำำคัญมำก ในสมัยนี ้)
Manage Storages on Linux
● There are a lot of things Linux admin should know about this topic. E.g.– Add and remove disks
– Partitioning and Filesystem
– Software RAID
– Logical Volume Management– etc.
● There ain't no time for all of that! ● So ...
Add Disk to VM on VBox
● เปิด VirtualBox Manager แลว้ Shutdown VM
● เลอืก VM จำก panel ทำงซ้ำย (LSA Clone)
● เลอืก Settings icon => เปิด Settings Window
● เลอืก Storage จำก panel ซำ้ย● เลอืก SATA Controller จำก Storage Tree
● กดเลือก Add Harddisk (icon ทำงขวำ)
Add Disk to VM on Vbox (cont)
● จำก Question เลือก Create new disk
● File type: VDI (next)● Storage details: Dynamically allocated (next)
● Location: แล้วแต่จะระบ่ชือ่ ทีไ่ม่ซำำ้กับชือ่เดิม Size: 100 MB
(next)● Summary: (Create)
เสร็จ● กลับไป Start VM
Devices File
● สำำหรับ Unix /dev จะใช้สำำหรับกำรเก็บ special “device” file
● Harddisk ของ Linux จะปรำกฏเป็น/dev/sdX โดย 'X' จะเริม่จำก a,b,c,d, …
● ลองใช้คำำสัง่# ls -l /dev/sd?
# ls -l /dev/sd??
● /dev/sda คอื disk ตัวแรก ซึง่ใช้ SATA driver
(ไม่สำำคัญเท่ำไหร่ สำำหรับ Linux ร่่นล่ำส่ด แทบทัง้หมดจะใช ้sata driver)
Disk Devices
● /dev/sda คอื harddisk ตัวแรก● /dev/sdb คอื harddisk ตัวทีส่อง● /dev/sr0 คอื cdrom (ลอง ls -l /dev/cdrom และ ls -l /dev/dvd)
● /dev/sda1 จะเป็น partition ที ่1 บน harddisk ตัวแรก● /dev/sdb2 จะเป็น partition ที ่2 บน harddisk ตัวที ่2
# ls -l /dev/sd??
● ยังไม่เหน็ partition ของ /dev/sdb เพรำะ ยังไม่มีกำรสร้ำง partition บน disk
ตัวทีส่อง
สร้ำง partition ด้วย fdisk, cfdisk
● Tools สำำหรับกำรจัดกำร partition (ในตอนนี ้) มี sfdisk, fdisk, cfdisk
● cfdisk เป็น text full screen ใช้งำนง่ำยทีส่ด่● sfdisk เหมำะสำำหรับกำรใช้งำนผ่ำน script
● fdisk อย่่ระหว่ำงกลำง แต่ผมชอบใช้ตัวนี ้เพรำะฉะนัน้ เรำจะใช้ fdisk
fdisk
● list partition on disk
# fdisk -l /dev/sda
# fdisk -l● create / modify disk partitio on /dev/sdb
# fdisk /dev/sdb– m (help)
– x (extra/expert function) – ส่วนใหญ่แล้วไม่ต้องใช้● r (return to normal command)
– p (print partition table)
– q (quit without saving changes)
– w (write and quit)
fdisk (cont)
● ตรวจสอบ กำรเปลีย่นแปลงเป็นระยะๆ ด้วย 'p' และ กอ่นทีจ่ะ 'w' ลงไป
● เรำจะสรำ้ง partition ใหม ่2 partition
– /dev/sdb1 ขนำด 80 MB สำำหรับเก็บข้อม่ล โดยใช้ ext2
– /dev/sdb2 ทีเ่หลือ สำำหรับเป็น swap
● ขนำดของ swap ทีค่วรใชค้วรจะเป็น 1 หรือ 2 เทำ่ของ memory (แล้วแต่ application ของ server)
fdisk (cont)
● จำก Command (m for help):
– n (create new partition)
– p (primary partition (1-4))
– Partition number (1-4): 1
– First cylinder (1-xxx, default 1): 1
– Last cylinder, .. default xxx): +80M
80M คือ 80 Megabytes, G → Gigabytes
● สร้ำง partition ที ่2 สำำหรับ swap
– n, p, 12
ถำ้เหลือเพียง cylinder เดียว ก็จะใช้ทัง้หมด
fdisk (cont)
● ขนำดของ disk จะเป็นคำ่โดยประมำณ ขึน้อย่่กบัจำำนวนของ head/cylinder/sector ซึง่จริงๆแล้วกข็ึน้อย่ก่ับกำร mapping ของ disk controller
อีกที ไม่ได้เป็นไปตำมทีแ่สดงจริงๆ● เพรำะฉะนัน้ จะได้ค่ำ “ประมำณ”● partition ทีส่องยงัมีชนิดเป็น linux ต้องเปลีย่นให้เป็น swap
● t, 2, 82● Command: t, Partition No: 2, Hex code: 82
● ลองใช้ 'L' ตอน fdisk ถำม hex code เพือ่แสดง partition ทัง้หมดที ่fdisk ของ Linux ร้่จัก
สร้ำงและใช้ swap
# fdisk -l /dev/sdb
# mkswap /dev/sdb2
# free
# swapon /dev/sdb2
# free
● เปรียบเทียบ บรรทัด Swap: ของคำำสัง่ Free
# swapoff /dev/sdb2
# free
สร้ำงและใช้ swap (cont)
● ถ้ำต้องกำรใช้ท่กครัง้ หลังจำกกำร reboot
เครือ่ง จะต้องไปแก้ไขไฟล์ /etc/fstab
● เพิม่ บรรทัด/dev/sdb2 none swap sw 0 0
สร้ำง ext2 partition
# mke2fs /dev/sdb1
# df
# mount /dev/sdb1 /mnt
# df
● เปรียบเทียบผลระหว่ำงคำำสัง่ df ทัง้สอง● ลองใช้คำำสัง่ df -h และ df /mnt หรือ df /
ไฟดับ ระหว่ำงทีเ่ครือ่งทำำงำนอย่่!● ทดลองใช ้คำำสัง่
# cp -avx / /mnt
ไม่สำมำรถจำำลองสถำนกำรณ ์ทีเ่ป็นปัญหำได้
FAIL!
fsck
● File System ChecK● e2fsck – fsck for ext2,3,4
# fsck -t ext2 /dev/sdb1
● filesystem ทีต่้องกำรจะ check และ fix จะต้อง unmount ก่อน● ถำ้ filesystem นัน้ mount อย่่ มันจะทำำให้พัง เพรำะกำร fix
นัน้ๆ
Linux FileSystem (short intro)
# ls /sbin/mkfs*
# ls /sbin/fsck*
● แสดง filesystem ทีส่ำมำรถ สร้ำง (make) และ ตรวจสอบ/ซ่อมแซมได้ check (and fix)
● NFS – Network file system เป็น services ทีใ่ห้บริกำรโดย server ส่วน filesystem ทีอ่ย่่ใน layer ล่ำงๆ อำจจะเป็น filesysystem ชนิดอืน่ๆ
Linux Filesystem (cont)
● File system อืน่ๆ เช่น NTFS, VFAT (ของ Windows) อย่่ใน package อืน่ๆ- vfat (dosfstools)
- ntfs (ntfs-3g)
● จะพ่ดถึงเรือ่งนีอ้ีกที วนัหลัง (หรือวนัหนำ้?)
Config sudo
● วิธีกำรทีง่ำ่ยทีส่ด่คือเพิม่ user เขำ้ไปในกล่่ม sudo
# grep sudo /etc/group
# usermod -a -G sudo cj
เปลีย่น cj เป็น user account ทีส่ร้ำงขึน้# grep sudo /etc/group
● user จะต้อง logout และ login ใหม่ ถึงจะสำมำรถใช้งำนได้
Config sudo (cont)
● แก้ไขไฟล์ /etc/sudoers
● โดยใช้คำำสัง่ visudo
– มันใช้ nano โดย default ถึงแม้จะชือ่ขึน้ต้นด้วย vi
● ถ้ำต้องกำรเปลีย่นเป็น vi
# EDITOR=vi visudo
● หรือ# update-alternatives --config editor
# update-alternatives --set editor /usr/bin/vim.tiny
Config sudo (cont)
● เพิม่ บรรทัดcj ALL=(ALL) NOPASSWD: /usr/bin/aptget, /usr/bin/aptitude
● ทำำให้สำมำรถใช้ sudo สำำหรับคำำสัง่ apt-get, aptitude ได้โดย ไม่ต้องถำม password
(แต่สำำหรับคำำสัง่อืน่ ยังถำมเหมือนเดิม)
● หลังจำกใช้ครัง้แรกแล้ว ครัง้ต่อไปไม่ถำม password จนกว่ำจะ logout หรือ timeout
● ต้องกำรให้ลืม password ใช้$ sudo -k