Xóa bài viết
Bạn có chắc chắn muốn xóa bài viết này không ?
Xóa bình luận
Bạn có chắc chắn muốn xóa bình luận này không ?
Những câu lệnh hay được dùng cho infra engineer
Bài viết được dịch từ http://qiita.com/sion_cojp/items/04a2aa76a1021fe77079
Điều cần nhớ trước khi đánh bất kì câu lệnh nào
①Để tránh làm nặng server bởi những câu lệnh có tải lớn, nhớ chỉnh nice
$ ionice -c 2 -n 7 nice -n 19
# -c 2:best effort cho Disk IO
# -n 7:Giảm priority của command xuống
# -n 19:Giảm tiếp priority của
②Điểm khác biệt giữa less more cat view
Command | Giải thích |
---|---|
less | Có thể xem được file nén mà không cần giải né. Ấn q để kết thúc. |
more | Hiể thị nội dung file, kết thúc khi hết file. Khác với less ở chỗ khi ấn q xong sẽ còn lại nội dung file ở trên terminal. |
cat | Có thể xem được nhiều file cùng một lúc, tuy nhiên sẽ load hết cả file nên không dùng trong trường hợp file nặng |
view | readonly mode của vi. Tương đương với vim -R |
③Muốn backup file tạm thời
Có một số người tạo ra file .bk trong cùng folder, tuy nhiên tôi thích dùng /tmp hơn
Giải thích |
---|
①/tmp Khởi động lại máy thì sẽ bị xoá |
②/var/tmp Khởi động lại máy thì cũng không bị xoá, thời gian lưu sẽ lâu hơn /tmp |
③Cả 2 thư mục đều bị xoá định kì (tmp➡10日、/var/tmp➡30日。) (Xem chi tiết ở $ less /etc/cron.daily/tmpwatch) |
④Dùng service thay cho /etc/init.d
Dùng service thì sẽ đỡ ảnh hưởng đến user hơn.
1. Memory, Disk
① Kiểm tra dung lượng memory đang được sử dụng
$ free -m
$ less /proc/meminfo
# Chúng ta có thể từ câu lệnh này để biết memory và buffer. Lượng buffer cũng rất quan trọng
②swap size
$ swapon -s
③Xem dung lượng sử dụng của disk hiện tại
$ df -Th
④Xem sử dụng của disk hiện tại
$ sudo ionice -c 2 -n 7 nice -n 19 du -scm /* | sort -rn
# sch: không hiển thị từ sub directory và hiện thị theo Mbyte
# nếu không sort thì sử dụng option -k thay cho -m sẽ dễ nhìn hơn
# rn: sort theo dung lượng sử dụng từ lớn đến nhỏ
# sau khi đánh df thì xem file nào chiếm dung lượng
2. Chuyển tiếp file
①limit tốc độ ở 1MB/s và vận chuyển. (Trước khi enter thì nhớ ấn -n để dry run)
sudo rsync -av --progress --bwlimit=1000 /tmp/test.txt 1.1.1.1:/tmp/
# Chuyển test.txt đến 1.1.1.1/tmp
# av: a={-r -l -p -t -g -o -D } a sẽ gồm toàn bộ các option -r, -l...-D. v là để hiển thị trạng thái chuyển file
# --progress để hiển thị trạng thái %
# bwlimit theo đơn vị KByte
"Chú ý"
### scp khác với rsync
# rsync sẽ tạo file mới ở /tmp/
# Sau khi chuyển hết xong sẽ ghi đè lên file (có thực hiện checksum)
# scp sẽ chuyển thẳng file, nếu trong quá trình chuyển mà có vấn đề về network thì sẽ thành file không hoàn chỉnh
#
# 「Thiếu dung lượng、không rsync được!」
# Khi đó thì có thể sử dụng rsync --inplace
②Tìm kiếm trong current directory tất cả các file .txt, sau đó xoá
$ find . -maxdepth 1 -type f -name "*.txt" -print0 | xargs -0 rm
# -maxdepth giới hạn độ sau tìm kiếm
# xargs pass kết quả như là parameter cho rm
# -print0: space sẽ biến thành \0
# -0: sử dụng \0 như delimiter
③Xoá tất cả những file nào "không kết thúc" bằng rb hoặc txt (\!)
$ find . -maxdepth 1 -type f \! \( -name "*.txt" -o -name "*.rb" \)
3.CPU,OS,package
①Thông tin CPU, core
$ less /proc/cpuinfo
②thông tin sử dụng CPU
$ ionice -c 2 -n 7 nice -n 19 top
# ấn 1 sẽ hiển thị lượng sử dụng theo core
$ sar
# Hiển thị một câu lệnh liên tục theo interval
# $ sar 1 5: Hiển thị 5 lần mỗi 1s
③Kiểm tra process
$ ps auxww
# w làm phần hiển thị rộng hơn
④Hiển thị file đang được sử dụng bởi 1 process
$ lsof -p PID
⑤kill toàn bộ process khởi động bởi /bin/sh
$ pkill -f "/bin/sh"
hoặc
$ ps auxww | grep "/bin/sh" | awk '{print $2}' | xargs kill
⑥OS vesion cho redhat
$ cat /etc/redhat-release
⑦kernel version
$ uname -a
⑧Kiểm tra rpm package
$ rpm -qa
4.Network
①Kiểm tra IP
$ ifconfig
$ ip addr show
②Kiểm tra route
$ route
③Kiểm tra đường đi của network
$ traceroute -n 8.8.8.8
④Trong trường hợp không dùng được UDP, có thể dùng ICMP thay thế
$ traceroute -In
④Kiểm tra connection của mysql
$ netstat -ano | grep 3306
# -ano: Hiển thị tất cả các connection + thời gian
⑤Hiển thị thông tin IPMI
$ sudo ipmitool lan print
⑥Kiểm tra iptables
$ iptables -L
⑦Kiểm tra network interface
$ less /etc/udev/rules.d/70-persistent-net.rules
⑧Kiểm tra tình trạng network interface
$ ethtool -i eth0
5.Account, login
①Hiển thị user đang login
$ w
# Có ích khi có trouble, xem có ai đang login nữa không
②Gửi message đến toàn bộ user đang login
$ wall
③Hiển thị user, group
$ getent passwd
④Tạo user
$ sudo useradd -g hoge -u 600 -d /home/user/hogehoge hogehoge
⑤Xoá user
$ sudo userdel hogehoge
⑥Set password
$ passwd hogehoge
9.Add thêm disk (parted)
### Từ disk thứ 2 sẽ là sdb
$ parted -l | grep sdb
### Tạo partition mới
$ sudo parted /dev/sdb
(parted) mklabel gpt
(parted) mkpart primary 0% 100%
(parted) set 1 lvm on
(parted) print
$ sudo pvcreate /dev/sdb1
$ sudo vgcreate VolGroupName /dev/sdb1
$ sudo lvcreate -l 100%free -n LogName VolGroupName
### Xoá file system
$ sudo mkfs -t ext4 /dev/VolGroupName/LogName
### Sau đó chỉ cần mount
$ sudo mkdir /NewDisk
$ sudo vim /etc/fstab
/dev/mapper/VolGroupName/LogName /NewDisk ext4 defaults 1 1
$ sudo mount /NewDisk
10.Disk extension (fdisk。có thẻ sử dụng đến disk 2TB)
### Khi có 2 disk thì sẽ hiển thị thành vdb
$ ls /dev | grep vd
### Tạo LVM
$ sudo fdisk -cu /dev/vdb
n (add a new partition)
p (primary)
1 (number)
### Kiểm tra fdisk
$ sudo fdisk -l
### Tạo volume vật lý
$ sudo pvcreate /dev/vdb1
# Kiểm tra
$ sudo pvdisplay
### Tạo volume group
$ sudo vgextend VolGroupName /dev/vdb1
# Kiểm tra
$ sudo vgdisplay
###
$ sudo lvextend -L +19270MB /dev/VolGroupName/LogName
# $ lvextend -l +100%FREE /dev/VolGroupName/LogName
### Extend online
$ sudo resize2fs -p /dev/VolGroupName/LogName
### Kết thúc, confirm bằng
$ df -Th
11. Xoá disk
### Xoá volume vật lý
$ sudo lvremove /dev/VolGroupName/LogName
### Xoá volume ảo
$ sudo vgreomove VolGroupName
### Khi xoá volume vật lý, nhơ chú ý sdb và sdc
$ pvdisplay
$ sudo pvremove /dev/sdb1
Sau khi xong nhớ dùng fdisk -cu để kiểm tra
Bình luận

{{ comment.user.name }}
Bỏ hay
Hay

Cùng một tác giả

40
3
Mình thi thoảng phải quản lý linux server, mà trong đó có một số thao tác quản lý quan trong như quản lý đĩa cứng, quản lý mạng, quản lý đường truy...

28
2
(Ảnh) Tiêu đề chỉ là câu khách :v, thực ra là có một vài điểm về mysql explain mà chắc chưa nhiều bạn biết, tớ cũng hay quên nên note lại cho nhớ ...

16
2
(Ảnh) Xu hướng Gần đây mình hay để ý các tranh luận trên mạng, đặc biệt là các tranh luận kĩ thuật. Sau một thời gian quan sát thì mình nhận thấ...
Bài viết liên quan

36
10
Thời kỳ mới đi làm tôi nghĩ cứ phải gõ thật nhiều cho quen cho nhớ nhưng lâu dần việc đó cho cảm giác thật nhàm chán. Hiện giờ, những gì tôi hay là...

1
0
Sử dụng option I với xargs Với option I thì bạn có thể sử dụng place holder với biến được lấy ra từ xargs man của option này: I replacestr R...