timmy / 磁碟使用量查詢 API
0 likes
0 forks
1 files
Last active 1 year ago
這段程式碼建立了一個簡單的 HTTP 伺服器,透過 /disk-usage API 端點提供磁碟空間使用狀況的查詢功能。使用者可以透過 GET 請求並指定 path 參數來獲取該目錄的總空間、已使用空間、可用空間及使用率,適用於系統監控或遠端管理工具。
| 1 | import json |
| 2 | from http.server import BaseHTTPRequestHandler, HTTPServer |
| 3 | from urllib.parse import urlparse, parse_qs |
| 4 | import shutil |
| 5 | |
| 6 | |
| 7 | class DiskUsage: |
| 8 | def __init__(self, path="/"): |
| 9 | self.path = path |
timmy / 檢查硬碟空間使用情況
0 likes
0 forks
1 files
Last active 1 year ago
這段程式碼透過 DiskUsage 類別來檢查指定路徑的磁碟空間使用情況,包括總空間、已使用空間、可用空間及使用率,並提供 format_size 方法將數值轉換成人類可讀的格式(如 KB、MB、GB)。適用於系統監控、伺服器管理或儲存資源分析。
| 1 | import os |
| 2 | import shutil |
| 3 | |
| 4 | class DiskUsage: |
| 5 | def __init__(self, path="/"): |
| 6 | """ |
| 7 | 初始化 DiskUsage 類別,指定檢查的路徑(預設為根目錄 /)。 |
| 8 | |
| 9 | :param path: 要檢查的檔案系統路徑。 |
| 10 | """ |
timmy / 基於 WebSocket 的遠端指令執行服務
0 likes
0 forks
1 files
Last active 1 year ago
這段程式碼建立了一個 WebSocket 伺服器,允許遠端用戶端傳送指令,並在伺服器端執行該指令後回傳執行結果。適用於遠端系統管理、指令控制或測試環境中的即時互動,但因為直接執行來自用戶端的指令,需特別注意安全性風險,如權限控管與輸入驗證,以防止指令注入攻擊。
| 1 | import asyncio |
| 2 | import websockets |
| 3 | import subprocess |
| 4 | |
| 5 | async def handle_command(websocket, path): |
| 6 | try: |
| 7 | async for message in websocket: |
| 8 | print(f"Received command: {message}") |
| 9 | |
| 10 | # 執行系統指令 |
timmy / 使用 Streamlit 建立 WebSocket 伺服器與客戶端
0 likes
0 forks
1 files
Last active 1 year ago
| 1 | import asyncio |
| 2 | import websockets |
| 3 | import streamlit as st |
| 4 | import threading |
| 5 | import socket |
| 6 | |
| 7 | # Function to check if a port is free |
| 8 | def is_port_free(port): |
| 9 | with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: |
| 10 | return s.connect_ex(('localhost', port)) != 0 |
timmy / SQL Server 資料表空間使用查詢
0 likes
0 forks
1 files
Last active 1 year ago
這段 SQL 查詢會列出指定資料庫中每個資料表的名稱、所屬 Schema、行數(Row Count)、總佔用空間(KB)、已使用空間(KB)以及未使用空間(KB),並依據總佔用空間進行降序排序。這對於 資料庫管理與最佳化 非常有用,能幫助 DBA 或開發人員分析表的大小、尋找可能需要清理或最佳化的表,提升資料庫效能。
| 1 | USE [你的資料庫名稱]; |
| 2 | SELECT |
| 3 | s.name AS SchemaName, |
| 4 | t.name AS TableName, |
| 5 | p.rows AS RowCounts, |
| 6 | SUM(a.total_pages) * 8 AS TotalSizeKB, |
| 7 | SUM(a.used_pages) * 8 AS UsedSizeKB, |
| 8 | (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSizeKB |
| 9 | FROM |
| 10 | sys.tables t |
timmy / Docker 部署 SQL Server 2019
1 likes
0 forks
2 files
Last active 1 year ago
這是一個 Docker Compose 配置檔,用於設定 Microsoft SQL Server 環境,包括一個 mssql-server 容器(SQL Server Express 版本)和一個 sqlcmd 容器(用於執行 SQL 命令)。兩個容器透過自定義網路連接,並將資料庫數據保存到命名卷 mssql_data。
| 1 | services: |
| 2 | mssql-server: |
| 3 | image: mcr.microsoft.com/mssql/server:2019-latest |
| 4 | container_name: mssql-server |
| 5 | environment: |
| 6 | ACCEPT_EULA: "Y" |
| 7 | SA_PASSWORD: "StrongP@ssw0rd!" |
| 8 | MSSQL_PID: "Express" |
| 9 | ports: |
| 10 | - "1433:1433" |
timmy / Python 排程任務管理
0 likes
0 forks
1 files
Last active 1 year ago
這段程式碼使用 schedule 設定每 5 分鐘執行一次指定任務,並透過主迴圈不斷檢查和執行排程中的任務。
| 1 | import time |
| 2 | import schedule |
| 3 | |
| 4 | # 定義任務函數 |
| 5 | def job(param): |
| 6 | print(f"執行任務,參數: {param}") |
| 7 | |
| 8 | if __name__ == "__main__": |
| 9 | # 設定排程,每 5 分鐘執行一次 |
| 10 | schedule.every(5).minutes.do(job, param="範例參數") |
timmy / 解析 RSS Feed 以獲取最新資訊
0 likes
0 forks
1 files
Last active 1 year ago
這段程式碼解析指定的 RSS Feed,並顯示 Feed 的標題以及每個項目的標題、連結和發布日期。
| 1 | import feedparser |
| 2 | |
| 3 | # RSS Feed 的 URL |
| 4 | rss_url = "https://www.twcert.org.tw/tw/rss-104-1.xml" |
| 5 | |
| 6 | # 解析 RSS Feed |
| 7 | feed = feedparser.parse(rss_url) |
| 8 | |
| 9 | # 顯示 Feed 的標題 |
| 10 | print(f"Feed Title: {feed.feed.title}\n") |
timmy / 使用 SQLite 儲存與管理 RSS 資料
0 likes
0 forks
1 files
Last active 1 year ago
這段程式碼使用 SQLite 初始化資料庫與表格,並提供函數將條目插入表格,同時處理重複條目的情況。測試範例展示如何插入一筆包含標題、連結、發布日期及描述的資料。
| 1 | import sqlite3 |
| 2 | |
| 3 | |
| 4 | # 初始化資料庫及表格 |
| 5 | def initialize_db(db_name="database.db", table_name="entries"): |
| 6 | conn = sqlite3.connect(db_name) |
| 7 | cursor = conn.cursor() |
| 8 | cursor.execute( |
| 9 | f""" |
| 10 | CREATE TABLE IF NOT EXISTS {table_name} ( |