MySQL / MariaDB 重新命名資料庫

以前 MySQL 的 “RENAME DATABASE” 指令, 已經在 5.1.23 後的版本刪除, 原因是重新命名資料庫時存在資料遺失的風險。以下示範用 “RENAME TABLE” 指令及 mysqldump 指令, 替資料庫重新命名的方法:RENAME TABLE這個方法適合資料庫比較大的情況, 但缺點是需要對每個資料表逐一執行。先建立一個空白的資料庫, 名稱用要變更的資料庫名稱, 以下假設舊資料庫是 oldname; 新資料庫是 newname: 然後把資料表逐一用 RENAME 指令從 oldname 搬到 newname: …

Linux 限制指令執行時間

timeout 指令可以在 Linux 下限制一個指令的執行時間, 當超出指定的時間後, 便自動終止執行.例如想限制一個指令的執行時間在 10 秒, 當超過 10 秒便自動將它 kill 掉: $ timeout 10 tail -f /var/log/httpd/access.logtimeout 的預設時間單位是秒, 上面的 10 沒有指定單位, 預設代表 10 秒, 以下時間單位的寫法:10s -> 10 秒 …

rename 指令 – 批次大量修改檔案名稱

在 Linux 要修改檔案名稱, 可以用 mv 指令, 但如果要重新命名的檔案很多, 用 mv 逐一修改會很痛苦, 也增加出錯的機會。而 rename 指令則可以批次大量修改檔案名稱。例如我想將所有 .jpeg 結尾的圖片, 改變副檔名成 .jpg, 可以用以下指令: $ rename ‘s/.jpeg/.jpg/’ *以上指令會將當前目錄下, 所有 .jpeg 結尾的檔案, 改名成 .jpg而 rename 也支援 regular …

Python 字串搜尋並取代

寫程式很多時都需要做字串搜尋並取代, 在 Python 內很簡單, 只要用內建的 replace 方法便可實現。語法以下是 replace() 的語法: 參數:old − 原來字串, 找出並用新字串取代.new − 替換字串, 替換在原來字串內.max − 如果有定義 max 參數, 只會取代最初出現的 “max” 次數的字串.例子: 輸出結果:testing, testing. testing, test.

Shell Script 檢查網路連線

Linux 下要檢查網路連線的工具有很多, 以下是用 Shell Script 檢查網路連線的方法。最簡單的方法是用 ping 指令, 嘗試 ping google.com, 這樣除了測試網路連線外, 也一同測試 DNS: 執行上面的 Shell Script 後, 當網路連線及 DNS 正常, 會輸出 “Network is up”; 不正常敗會輸出 “Network is down”.如果防火牆將 …

Shell Script 英文字母大小寫轉換

寫程式很多時要將英文字母大小寫轉換, 例如想將第一個字母轉成大寫; 將 hostname 轉換成全部大寫或小寫等。Shell Script 可以用 tr 指令完成。例如: 上面的 tr 會將 “sam tang” 轉換成 “SAM TANG”, 如果是將大寫轉換成小寫, 將 及 互換即可。而 tr 另一種寫法可以這樣寫: bash 提供了另一個方法, 使用 …

Shell Script 修改系統帳號密碼

在 Linux 要修改帳號密碼, 可以用 passwd 完成。passwd 需要從 stdin 輸入新密碼, 但很多情況需要用非互動的方式修改, 即一行指令修改密碼。例如用 Shell Script 建立新帳號後, 立即修改新用戶的密碼。以下會示範不用從 stdin 輸入新密碼的情況下, 用一行指令修改帳號密碼的方法。版本較新的 Linux 的 passwd 指令, 支援 –stdin 參數, 即不會要求輸入兩次新密碼作為確認, 這樣只要用 echo 指令將新密碼, 透過管線 …