[Ubuntu] Linux主機相關指令, 查詢網路狀態,綁定多個ip, 新增使用者相關, 釋放memory, mount, blkid, 防火牆, iptables

顯示Linux主機作業系統相關資訊

$ cat /etc/*release
-----------------------------------

清除沒有釋放掉的memory
Ref: 這裏
echo 3 > /proc/sys/vm/drop_caches
(3 是指釋放pagecache、dentries與inodes,也就是釋放所有的cache)
-----------------------------------
Ref: http://www.arthurtoday.com/2015/01/how-to-add-a-user-as-sudoer-using-the-command-line-in-ubuntu.html

$ sudo adduser arthurtoday
$ sudo adduser arthurtoday sudo

取消這位使用者的 sudoer 資格
$sudo deluser arthurtoday sudo 

將已存在用戶加入到 sudo 的群組
usermod -a -G sudo chris

下面的指令來快速的查一下有那些使用者是有被放進 sudo 和 admin 群組的
$ sudo cat /etc/group | grep sudo
$ sudo cat /etc/group | grep admin

------------------------------------
Ubuntu 綁定多個ip在一張網卡上, 舉eth0為例:
# vi /etc/network/interfaces

auto eth0:1
iface eth0:1 inet static
    address xxx.xxx.xxx.xxx
    netmask 255.255.255.240


auto eth0:2
iface eth0:2 inet static
    address yyy.yyy.yyy.yyy
    netmask 255.255.255.240

# ifup eth0:1
# ifup eth0:2
可不同網段!
Ref: https://askubuntu.com/questions/313877/how-do-i-add-an-additional-ip-address-to-etc-network-interfaces
------------------------------------
主機有多個ip時, 可以透過curl指定網路介面
# curl --interface eth0:1
------------------------------------
列出top中完整指令
Ref: https://stackoverflow.com/questions/590952/a-process-command-in-top
# top -c

------------------------------------
ubuntu
修改網卡資訊
vi /etc/network/interfaces
重新讀取網卡設定
ubuntu 14.04新版只能使用ifdown eth0; ifup eth0;
所以如果是要遠端操作, 最好是有兩張網卡
透過另外一張網卡連進去, 不然就只能乖乖到主機面前囉

------------------------------------
blkid <==這個指令可以叫出目前系統有被格式化的裝置


格式化硬碟

Ref: https://blog.gtwang.org/linux/linux-add-format-mount-harddisk/


# 列出 /dev/sdb 的硬碟資訊
fdisk -l /dev/sdb
# 將 /dev/sdb 格式化成 ex4
mkfs -t ext4 /dev/sdb




就可以看出現在的硬碟是ext多少了
列出 /dev/sda 相關資訊, ex: ext3
sudo file -s /dev/sda
掛載 /dev/sdb 在 /test
# cd /
# mkdir test
# mount /dev/sdb /test

取消掛載 /test
# umount /test

列出硬碟使用資訊
# df -lh

抓出指定目錄底下的所有目錄或是檔案的大小
# du -sh -- *

檢查網卡流量工具
iptraf

檢查port有什麼資料傳進來
sudo tcpdump -nnnX -s 1500 port 3306
sudo tcpdump -aXXX port 3306 | grep denied
Ref
Another Ref



# 列出防火牆規則
iptables -L -n
# 設定 lo 成為受信任的裝置,亦即進出 lo 的封包都予以接受
iptables -A INPUT -i lo -j ACCEPT
# 允許 eth1 的網段
iptables -A INPUT -i eth1 -s 192.168.2.0/24 -j ACCEPT
# 允許 12345 port
iptables -A INPUT -i eth0 -p tcp --dport 12345 -j ACCEPT
# 允許 80 port
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ 允許 443 port
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
# 流入的預設政策為丟棄
iptables -P INPUT DROP
# 封鎖特定port由外流入的封包, ex: 封鎖11211 port流入的封包
iptables -A INPUT -i eth0 -p tcp --dport 11121 -j DROP
# 開啟443 port
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
# allow replies from yum server : https://www.howtoforge.com/community/threads/iptables-yum-allow-rule.19936/
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT




sudo vi /etc/vsftpd/vsftpd.conf
# 最底下新增
pasv_enable=YES
pasv_min_port=5000
pasv_max_port=6000
# vsftp重啟
service vsftpd restart
#設定防火牆允許vsftp
iptables -A INPUT -p tcp --dport 5000:6000 -j ACCEPT
# save rules
service iptables save

# 如果是在centos 7
yum install iptables-services
systemctl enable iptables
service iptables save

# 查看哪些 http request 流過特定網卡
# 查 eth1中的 80 port 流量
tcpdump -A -i eth1 -vv 'port 80'



當查不出流量問題時可以先使用
netstat -pt
會顯示出連接中的ip/address
然後使用
ps aux | grep pid
就可以找到是哪隻process造成的!


# 想知道目前php是吃哪個php.ini
php -i | grep "Loaded Configuration File"

列出所有 nginx 底下的 server_name:
grep server_name /etc/nginx/sites-enabled/* -RiI
nginx 1.9.2版以上可用: nginx -T | grep "server_name "

忘記Linux密碼,如何重設

留言

這個網誌中的熱門文章

[MySQL] schema 與資料類型優化

[翻譯] 介紹現代網路負載平衡與代理伺服器