Author: Sam Tang

把 crontab 執行指令輸出寫入記錄檔

一般上在 crontab 自動執行的指令, 會將所有指令標準輸出及錯誤放到 /dev/null, 這便會略過所有指令的輸出, 例如用 crontab 執行 /root/my-script.sh, 一般上語法是這樣寫: * * * * * /root/my-script.sh > /dev/null 但有時需要將執行指令的輸出儲存下來, 只要將 /dev/null 換成記錄檔的位置即可, 例如想把指令的輸出放到 /var/log/mycrontab.log, 可以這樣寫: * * * * …

MySQL InnoDB 刪除資料後釋放硬盤空間

MySQL 使用 InnoDB 時,當資料表用 DELETE FROM 刪除資料後,硬碟空間並不會立即釋放,因為 MySQL 只對已刪除的資料標記為刪除,並沒有真正刪除資料,這會導致 InnoDB 的檔案不斷擴大。只有在 DROP TABLE 及 TRUNCATE TABLE 時才會釋放空間。如果沒有開啟 innodb_file_per_table,所有 InnoDB 的資料都會儲存在 ibdata 檔案內,對於資料庫的體積很大的 MySQL Server,要釋放硬碟空間會很痛苦,因為只有將 MySQL 資料庫導出,再重新將備份還原才可以釋放空間。如果 innodb_file_per_table 有開啟,每個 InnoDB 資料表都會有獨立的檔案,可以較簡單地釋放硬碟空間, …

查詢已安裝的 MySQL / MariaDB 版本

由於各個 MySQL 的版本都略有不同,而且又有 MaridDB 或 Percona 等分支版本, 很多時系統管理員都需要查詢系統內的 MySQL 版本,要查詢系統內的 MySQL 版本,以下列出幾種查詢 MySQL 版本的方法。CLI在 CLI 查詢 MySQL 版本十分簡單,用 mysql 指令便可以, 而且不用登入 MySQL: $ mysql -V 執行後會輸出 MySQL 的版本, 以下是在 CentOS …

解決 nslookup, dig , host Command Not Found

nslookup, dig 及 host 這三個指令是 DNS 查詢工具, 對 DNS 除錯很實用, 原因是系統沒有安裝以上工具的套件, 執行以上指令會出現 Command Not Found:nslookup :command not founddig :command not foundhost:command not found只要安裝相關的套件包即可解決問題, RHEL 及 CentOS 安裝 bind-utils; Debian 及 …

防止 SSH 連線逾時斷線

如果發現 SSH 閒置幾分鐘後, 因為基於安全理由, SSH 會自動斷線。但如果在測試或者正在安裝的新伺服器, 這樣也會很麻煩, 這個問題可以透過修改 SSH 客戶端或者 SSH 伺服器的設定解決。SSH 客戶端在 Linux 下的 SSH 客戶端, 開啟家目錄的 SSH 設定檔: $ vi ~/.ssh/config 加入以下兩行:要留意第二行開始的位置, 必須像上面一樣加上空格, 然後執行以下指令載入設定: $ sudo source ~/.ssh/config …

查詢已安裝的 PHP 版本

由於 PHP 各版本的寫法都略有不同,很多時都需要查詢系統內的 PHP 版本,或者系統管理員也有時會需要檢查 PHP 版本,要查詢系統內的 PHP,分別可以用 PHP 程式或者 CLI 指令模式完成,以下分別看一看幾種不同方法。CLI在 CLI 查詢 PHP 版本十分簡單,用 php 指令便可以: $ php –version 或 $ php-cgi –version 執行後會有類似的輸出: PHP 5.4.16 (cli) (built: …

diff 及 patch 指令 – 產生, 寫入 Patch 檔

Linux 的 diff 指令是用作逐行比較兩個檔案, 然後列出兩個檔案不同的地方, 以下文章會示範用 diff 產生程式的 Patch, 及用 patch 指令匯入 Patch。diff 指令的語法:diff file1 file2要比較兩個檔案, 最簡單的做法是直接將兩個要比較的檔案, 放在 diff 指令後面, 以下是比較 file1 及 file2: $ diff file1 file2 如果兩個檔案的內容相同, …

MySQL / MariaDB 移除使用者帳號及權限

當 MySQL / MariaDB 伺服器開啟了多個帳號給不同網站使用, 有需要將當中的特定帳號移除, 除了登入 phpMyAdmin 操作外, 也可以用 MySQL 指令完成, 以下是 MySQL 及 MariaDB 移除使用者帳號的方法。首先登入到 MySQL: # mysql -u root -p 登入 MySQL 後, 可以先列出所有使用者帳號, 以確定要刪除的帳號:看到要移除的帳號後, 以下假設要移除的帳號是 ‘dbuser’@’localhost’.查看 …

Linux 查詢主機板 BIOS 版本資訊

Linux 下使用 dmidecode 指令, 可以查看在 SMBIOS tables 內的主機板 BIOS 版本相關資訊, 而執行 dmidecode 指令需要有 root 權限才可以執行, 執行以下指令以查看 BIOS 的廠商及版本資訊: # dmidecode -t bios -q BIOS Information Vendor: Dell Inc. Version: 1.4.5 …