timmy / 清理未使用的 SSH 暫存檔案

0 likes
0 forks
1 files
Last active 1 year ago
這個 Bash 腳本用於 清理 /tmp 目錄中無效的 SSH 相關暫存檔案。它會搜尋所有以 ssh- 開頭的檔案或目錄,使用 lsof 檢查是否有行程正在使用它們,若未被使用則刪除,以確保 /tmp 目錄保持乾淨。這適用於 系統維護、提升伺服器安全性,防止長時間未使用的 SSH 暫存文件佔用空間。
1 #!/bin/bash
2
3 # 定義要檢查的目錄
4 TMP_DIR="/tmp"
5
6 # 查找所有以 ssh- 開頭的文件或目錄
7 for file in "$TMP_DIR"/ssh-*; do
8 # 如果沒有匹配的文件,跳過
9 if [ ! -e "$file" ]; then
10 continue

timmy / Bash 陣列遍歷與輸出

0 likes
0 forks
1 files
Last active 1 year ago
這個 Bash 腳本建立了一個數字陣列 arr,並透過 for 迴圈遍歷陣列中的每個元素,使用 printf 將其逐行輸出。這適用於 處理資料集合、批次操作或腳本自動化,可用於 列印資料、執行批次指令或進一步處理陣列元素。
1 #!/bin/bash
2
3 # 建立一個陣列
4 arr=(1 2 3 4 5)
5
6 # 迴圈遍歷陣列的每一個元素
7 for i in "${arr[@]}"; do
8 # 處理每一個元素
9 # echo $i
10 printf "%s\n" "$i"
Last active 1 year ago
這個 Bash 腳本用於根據輸入的使用者名稱,建立一個新的使用者帳號,並提示輸入密碼後設定該密碼,然後將該使用者加入 sudo 群組,同時更新 sudoers 檔案以允許該使用者無密碼執行 sudo 指令,方便日後進行系統管理。
1 #!/bin/bash
2
3 # Check if a username was provided as an argument
4 if [ $# -ne 1 ]; then
5 echo "Error: Please provide a username as an argument."
6 exit 1
7 fi
8
9 # Get the username from the argument
10 username="$1"

timmy / IP 位址查詢與解析

0 likes
0 forks
1 files
Last active 1 year ago
這個 Bash 腳本用於 查詢目前裝置的公網 IP 及其地理資訊。它會先檢查系統是否安裝了 curl 和 jq(jq 用於解析 JSON),然後使用 curl 向 ip-api.com 發送請求,獲取目前裝置的 IP 位址、國家、城市、ISP、時區等資訊,並透過 jq 以可讀格式輸出。這適用於 網路診斷、IP 追蹤、地理位置查詢或伺服器網路狀態檢測。
1 #!/bin/bash
2
3 SHELL=/bin/sh
4 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
5 TZ="Asia/Taipei"
6 export PATH
7 export LANG=en_US.UTF-8
8 export LANGUAGE=en_US:en
9
10 # Check if curl is installed
Last active 1 year ago
這段 Python 程式碼使用 策略模式(Strategy Pattern),定義一個 DataHandlerStrategy 介面,並實作 YAML (YamlHandler) 與 JSON (JsonHandler) 兩種不同的資料處理策略。它提供統一的 read_data 和 write_data 方法,讓程式可以根據不同的檔案格式 靈活讀取與寫入 YAML 或 JSON 檔案,適用於 配置管理、資料序列化或跨格式資料處理應用。
1 import yaml
2 import json
3 from abc import ABC, abstractmethod
4
5 # 策略介面
6 class DataHandlerStrategy(ABC):
7 @abstractmethod
8 def read_data(self, path):
9 pass

timmy / JWT 令牌生成與驗證

0 likes
0 forks
1 files
Last active 1 year ago
這段 Python 程式碼使用 JWT(JSON Web Token)來實現 身份驗證與授權。它首先根據 使用者資訊(ID、帳號)及 自訂金鑰 生成一個 有效期限為 30 分鐘 的 JWT,然後透過相同的金鑰來驗證 Token 的有效性,並解碼出原始資料。此機制適用於 使用者登入授權、API 驗證及安全通信,可確保請求的合法性並防止未授權的存取。
1 import jwt
2 import datetime
3
4 # 假設的使用者資訊
5 user = {
6 'id': 123,
7 'username': 'exampleUser'
8 }
9
10 # 生成 JWT

timmy / Python 錯誤日誌記錄

0 likes
0 forks
1 files
Last active 1 year ago
這段 Python 程式碼使用 logging 模組來 記錄錯誤日誌,透過 logging.basicConfig() 設定 錯誤訊息輸出至 error.log 檔案。當程式執行時發生 異常(如除數為 0),會捕捉錯誤並使用 logging.error() 記錄詳細的錯誤訊息與 回溯資訊(exc_info=True),方便 錯誤偵錯與系統維護。適用於 後端系統監控、錯誤追蹤及除錯分析。
1 # 首先,引入 logging 模組
2 import logging
3
4 # 然後,建立一個 logfile,用來記錄錯誤訊息
5 logging.basicConfig(filename="error.log", level=logging.ERROR)
6
7 # 接下來,在你的程式中,當發生錯誤時,使用 logging.error() 來記錄錯誤訊息
8 # 同時,把 backtrace 設定為 True,以便在錯誤發生時記錄回溯訊息
9 try:
10 # 這裡是你的程式碼
Last active 1 year ago
這段 Python 程式碼使用 loguru 模組來 記錄日誌並提供詳細的錯誤追蹤,它會將日誌輸出到帶有時間戳記的 logfile_{time}.log 檔案中,並支援不同的 日誌等級(Debug、Info、Warning、Error、Critical、Success)。此外,它可以 捕捉例外(logger.exception),記錄完整的 回溯資訊(backtrace=True),並允許使用 自訂日誌等級(logger.log)。此腳本適用於 系統監控、錯誤追蹤、伺服器日誌管理,讓開發者能夠更容易 偵錯與分析程式執行狀況。
1 import loguru
2
3 loguru.logger.add("logfile_{time}.log")
4
5 logger = loguru.logger
6
7 logger.debug("Debug message")
8 logger.info("Info message")
9 logger.warning("Warning message")
10 logger.error("Error message")

timmy / Brotli 壓縮與解壓縮

0 likes
0 forks
1 files
Last active 1 year ago
這段 Python 程式碼使用 brotli 模組來 壓縮與解壓縮資料。它先將 字串資料 (data) 進行 Brotli 壓縮,然後再解壓縮回原始內容,並分別輸出 壓縮後與解壓縮後的結果。Brotli 是由 Google 開發的高效能壓縮演算法,適用於 網頁資源最佳化(如 HTML、CSS、JavaScript 壓縮)、檔案儲存與傳輸最佳化,提高 傳輸速度並減少頻寬消耗。
1 import brotli
2
3 # 原始資料
4 data = b"This is a test. This is only a test."
5
6 # 壓縮資料
7 compressed = brotli.compress(data)
8
9 print("Compressed data:", compressed)

timmy / 工廠方法模式的本地化翻譯

0 likes
0 forks
1 files
Last active 1 year ago
這段 Python 程式碼使用 工廠方法模式(Factory Method Pattern)來實現 多語言在地化(Localization)。它定義了 English(英文)、Greek(希臘文)、Chinese(中文)三種 Localizer 類別,透過 get_localizer(language) 方法 根據指定語言動態選擇適當的翻譯器。 執行時,程式會將 "dog parrot cat bear" 逐字進行翻譯,並輸出對應語言的結果。這適用於 國際化(i18n)開發、跨語系應用程式、系統訊息翻譯 等場景,讓程式能 彈性支援不同語言。
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3
4
5 """
6 factory.py: 工廠方法模式的範例程式
7
8 Author: Timmy
9 Copyright: Copyright 2022, Timmy
10 授權方式: MIT