檢查硬碟使用量 – df
輸入df指令
df
後面的mounted on指的是這個空間是掛載在那一個分割區
查詢某個分割區的硬碟使用狀況
df /dev
上面是查詢dev這個分割區的使用狀況
改變顯示的空間單位
預設的 df 輸出會以 KB 為單位顯示磁碟用量,但是現在的硬碟容量都很大,這樣的輸出較不好閱讀。
這時可以加上-h
,來用適合閱讀的方式顯示資訊
僅顯示本機磁碟
使用
df -l
輸入df指令
df
後面的mounted on指的是這個空間是掛載在那一個分割區
df /dev
上面是查詢dev這個分割區的使用狀況
預設的 df 輸出會以 KB 為單位顯示磁碟用量,但是現在的硬碟容量都很大,這樣的輸出較不好閱讀。
這時可以加上-h
,來用適合閱讀的方式顯示資訊
使用
df -l
使用以下指令安裝nginx
brew install nginx
完成之後就可使用 nginx
# 啟動 nginx
nginx
# 加上 -s option 來下指令
# 停止 nginx
nginx -s stop
# 重新讀取設定檔
nginx -s reload
若要設定為可以開機自動啟動,則把 nginx 啟動的 bash 檔放到 /etc/init.d/
nginx 的設定檔名為 ngix.conf
,設定檔所在的路徑可以透過 nginx -t
來獲得
伺服器根據用戶端的請求,從其關聯的一組或多組後端伺服器(如Web伺服器)上取得資源,然後再將這些資源返回給用戶端,用戶端只會得知反向代理的IP位址,而不知道在代理伺服器後面的伺服器叢集的存在。
1. 安裝PM2npm install pm2 -g
2. 啟動服務pm2 start app.js
3. 啟動N個名為SERVICE_NAME的服務的進程pm2 start app.js -i N --name SERVICE_NAME
4. 重啟服務npm restart SERVICE_NAME
5. 設定記憶體使用超過多少後自動重啟伺服器pm2 start app.js --max_memory_restart 1024M
6. 監控服務pm2 monit
1. 查看物理CPU个数cat /proc/cpuinfo| grep "physical id" | sort| uniq | wc -l
2. 查看每個物理CPU中的核數cat /proc/cpuinfo| grep "cpu cores"| uniq
3. 查看邏輯CPU的個數cat /proc/cpuinfo| grep "processor"| wc -l
nginx的主要功能如下
日誌系統對於任意應用而言,通常都是必不可少的一個輔助功能。pm2的相關文件默認存放於$HOME/.pm2/
目錄下,其日誌主要有兩類:
pm2 ecosystem:生成配置文件ecosystem.json
pm2 startOrRestart /file/path/ecosystem.json :通過配置文件啟動服務
如下是開發時ecosystem.json的內容:
{
apps : [
{
name : "nova",
max_memory_restart: "300M",
script : "/root/nova/app.js",
out_file : "/logs/nova_out.log",
error_file : "/logs/nova_error.log",
instances : 4,
exec_mode : "cluster",
env: {
NODE_ENV: "production"
}
}
]
}
採用cluster模式啟動了4個服務進程;如果服務佔用的內存超過300M,會自動進行重啟。
更多相關知識請見官網:ecosystem-file
一個簡單的process.json範例
{
"apps" : [{
"name" : "HTTP-API",
"script" : "http.js"
}],
"deploy" : {
// "production" is the environment name
"production" : {
"user" : "ubuntu",
"host" : ["192.168.0.13"],
"ref" : "origin/master",
"repo" : "git@github.com:Username/repository.git",
"path" : "/var/www/my-repository",
"post-deploy" : "npm install; grunt dist"
},
}
}
/bin/bash:
# Setup deployment at remote location
$ pm2 deploy production setup
# Update remote version
$ pm2 deploy production update
# Revert to -1 deployment
$ pm2 deploy production revert 1
# execute command on remote machines
$ pm2 deploy production exec "pm2 reload all"
更多介紹請見官網:simple-deploy
ps指令可以將某個時間點的程序運作情況擷取下來
僅觀察自己的 bash 相關程序: ps -l
觀察系統所有程序: ps aux
若覺得這個列表太長,可以使用grep
來獲取想要知道的服務,例如
[root@study ~]# ps aux | egrep '(cron|rsyslog)'
下面指令可以查詢單個服務的運行狀態
[root@localhost ~]# service sshd status
請參考這篇文章:linux管理Service的指令
useradd
來創建一個普通的使用者帳號# useradd USERNAME
# passwd USERNAME
Changing password for user USERNAME.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
visudo
去編輯/etc/sudoers
檔案# visudo
## Allows people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
# usermod -aG wheel USERNAME
# su USERNAME -
$ groups
USERNAME wheel
$ sudo whoami
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for USERNAME:
root
其特性如下:
如果我們對某個檔案做了硬連結,那麼若刪掉了其中一個,另一個仍然會可以讀去,但是,hard link 是有限制的:
使用範例
其特性如下:
這個的概念就很像windows裡面的捷徑概念,當來源檔被刪除之後,symbolic link 的檔案會開不了。
但是他可以跨FileSystem也可以link目錄,在使用上相對會較為方便。
使用範例
# systemctl list-units --type target
# systemctl get-default
切換運作層級至文字模式(runlevel 3)
# systemctl isolate multi-user.target
若要查看某個服務現在執行的系統層級,可使用下列指令
systemctl show -p WantedBy service-name
服務的runlevel有下面這些:
對照chkconfig的runlevel如下:
systemctl
命令是系統服務管理的指令,它將service
和chkconfig
這兩個命令組合到一起。
[root@study ~]# systemctl [command] [unit]
command 主要有:
start :立刻啟動後面接的 unit
stop :立刻關閉後面接的 unit
restart :立刻關閉後啟動後面接的 unit,亦即執行 stop 再 start 的意思
reload :不關閉後面接的 unit 的情況下,重新載入設定檔,讓設定生效
enable :設定下次開機時,後面接的 unit 會被啟動
disable :設定下次開機時,後面接的 unit 不會被啟動
status :目前後面接的這個 unit 的狀態,會列出有沒有正在執行、開機預設執行否、登錄等資訊等!
is-active :目前有沒有正在運作中
is-enabled:開機時有沒有預設要啟用這個 unit
[root@study ~]# systemctl start atd.service
[root@study ~]# systemctl start atd.service
[root@study ~]# systemctl status atd.service
[root@study ~]# systemctl enable atd.service
[root@study ~]# systemctl disable atd.service
[root@study ~]# systemctl list-units --type=service
[root@study ~]# systemctl restart atd.service
許多人刪除資料夾時仍會使用rmdir指令,這個指令在刪除空資料夾時是OK的,但是若資料夾內有其他檔案時,便會顯示錯誤
並且這個指令只能刪除資料夾而無法刪除檔案。
rm:remove 刪除目錄或檔案
若要完全刪除一個含有內容的資料夾,則應加上-rf
參數。
也就是
rm -rf 目錄名字
1、刪除資料夾:
rm -rf /var/log/httpd/access
將會刪除/var/log/httpd/access目錄以及其下所有檔案、資料夾
2、刪除檔案使用:
rm -f /var/log/httpd/access.log
離線安裝node.js和npm
1.下載官方安裝包並拷貝到離線機器上。
官方下載地址:https://nodejs.org/en/download/
2.解壓檔案:
tar-xJf node-v8.9.4-linux-x64.tar.xz
2.放到相應目錄例如/opt/
sudo mvnode-v8.9.4-linux-x64 /opt/
3.建立檔案連結使npm和node命令到系統命令
sudo ln -s /opt/node-v8.9.4-linux-x64/bin/node /usr/local/bin/node
sudo ln -s /opt/node-v8.9.4-linux-x64/bin/npm /usr/local/bin/npm
4.檢查是否安裝成功
node-v
npm-v