Category: Linux

解決 bash: scp: command not found lost connection

scp 可以在透過 SSH 加密下, 在本機或兩台主機間複製檔案, 今天執行 scp 時出現以下錯誤:主機原來已經有安裝 scp, 為何會出現 “command not found” 呢? 而且如果沒有安裝 scp, 應該不會出現要我輸入遠端主機密碼的提示, 再細心想一想, 原來只是自己太大意。scp 在兩台主機間複製檔案時, 需要在兩邊都有安裝好 scp, 而遠端主機是新安裝的, 沒有安裝 scp.用 SSH 登入遠端主機, 執行以下指令安裝 openssh-clients 套件, …

解決 Nginx 504 Gateway Time-out

當 Nginx 發生 504 Gateway Time-out 時, 一般上原因是一些程式執行需時較長時間, 當執行時間超出 Nginx 的限制時, 便會出現 504 Gateway Time-out 問題, 如果排除了程式上的問題, 解決方法是將執行時限延長 (或者升級主機的硬體也可以)。首先開啟 Nginx 的網站設定檔, Nginx 將網站設定檔都放在 /etc/nginx/ 目錄下, 下面以 www.phpini.com 為例: # vi …

rsync 透過 SSH 傳送檔案

rsync 是十分好用的同步備份工具,rsync 預設傳輸時不會加密,但其實 rsync 是支援 SSH 傳輸檔案,以下是 rsync 透過 SSH 同步檔案的方法:從本機用 rsync 透過 SSH 複製檔案到遠端:在 rsync 加上參數 “-e” 可以自訂通訊協定,後面加上要用的通訊協定即可。 # rsync -avzhe ssh my_backup.tgz [email protected]:/backups/ [email protected]’s password: 上面指令會將檔案 my_backup.tgz 用 …

同時安裝多個 PHP 版本

現在 PHP 其中一個很大的問題, 是很多個不同的 PHP 版本都有人使用, 對於開發者需要顧及程式碼是否可以在不同版本執行, 而對系統管理員, 就要面對不同程式可能需要不同 PHP 版本。以下記錄一下在系統安裝不同 PHP 版本, 並可以按需要設定不同 Virtualhost 或目錄, 可以使用不同 PHP 版本的方法, 以下會以 CentOS 7 及 Apache 作為安裝環境。首先在系統用 YUM 安裝好 Apache 及 PHP, …

Linux 的 useradd 實用例子

Linux 下的 “useradd” 指令用作建立新帳號, 當執行 useradd 指令時, 它會完成以下工作:— 編輯 /etc/passwd, /etc/shadow, /etc/group 及 /etc/gshadow 檔案, 加入新帳號的內容. — 為新帳號建立家目錄. — 設定新帳號家目錄的權限及 owner.執行 useradd 建立帳號時, 如果沒有指定參數, 會用系統的預設值建立帳號, 以下是建立帳號時改變預設值的例子。 建立新帳號要使用預設值建立帳號, 語法十分簡單, 只要在 useradd …

找出屬於個別帳號檔案並 chown

今天將一台 CentOS 6 伺服器內所有網站,輚移到另一台 CentOS 7,轉移過程連同檔案權限, owner 及 group 都一同複製,測試後發現多數網站都運作正常,唯獨有用 PHP 建立的檔案及目錄便有寫入失則的問題。查看了檔案的權限是正確的,但用 “ls -l” 查看那些出問題的檔案及目錄,看到 owner 不是顯示 “apache”, 而是顯示 “80”, 原來 CentOS 6 時 Apache 帳號的 uid 是 80, 在 …

只針對檔案或目錄 chmod

如果想對整個目錄內所有檔案及目錄改變權限,可以用 chmod -R 實現,例如: $ chmod -R dir_name/ 644 以上指令會對 dir_name/ 目錄及它的所有內容,改變權限為 644.但如果要做到檔案及目錄設定不同權限,例如目錄設定為 755, 檔案設定為 644, 可以透過 find 指令來找出目錄或檔案,並用 -exec 參數執行 chmod 指令。改變所有 dir_name/ 目錄下所有目錄的權限為 755: $ find dir_name/ -type …

設定 $PATH 路徑環境變數

在 Linux 執行指令時,如果只輸入指令名稱,而沒有輸入完整指令路徑,系統會在 $PATH 變數設定的目錄搜尋相關指令。要查看目前 $PATH 變數,可以用以下指令: echo $PATH 會輸出類似這樣的內容:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin要自訂一些目錄路徑到 $PATH 變數,只要改變 $PATH 即可,例如我要加入 /home/phpini/bin 到 $PATH 環境變數,可以用以下指令: PATH=$PATH:/home/phpini/binll other directories ## Permanently add a directory to shell PATH以上方法的缺點是重新開機後便不能使用,要讓設定永久生效,可以用以下方法:編輯帳號的 .bash_profile …

Shell Script 檢查空白目錄

Shell Script 要檢查目錄是否沒有內容,可以用以下寫法:以上程式碼用了 ls -A 指令檢查, ls 的 -A 參數會顯示包括隱藏檔的所有目錄內容,只是不會顯示 “.” 及 “..”,從而檢查 /var/www/html 是否空白目錄。