Alan's BLOG
  • archives
  • posts
  • tags
  • about
  • quote
  • search
Home » Tags

mongodb

MongoRestore 快速介紹

👨‍💻簡介 上一篇介紹了 mongodump,拿來將我們資料庫的檔案備份到本地,這次則是要來介紹 mongorestore,將本地的資料還原到指定的資料庫。 🔰基礎介紹 什麼是 MongoRestore? mongorestore 是 MongoDB 提供的一個命令行工具,用於將先前使用 mongodump 產生的備份檔案恢復到資料庫中,支援 BSON 格式的資料恢復。 MongoRestore 主要功能 恢復資料庫: 可以將備份的整個資料庫恢復。 恢復集合(collection): 可以指定恢復特定的集合。 從遠端伺服器恢復: 可以從遠端的 MongoDB 伺服器恢復資料。 Mongorestore 優缺點 優點 簡單易用:簡單的命令行操作即可完成資料還原。 支援大規模資料恢復:可以高效處理大型資料集。 支援各種平台:跨平台使用,不限作業系統。 缺點 相對耗時:對於大型資料庫,還原時間可能較長。 空間需求:恢復操作需要足夠的磁碟空間。 🎯setup 基本指令 恢復整個資料庫 語法: mongorestore --db <database_name> <path_to_backup_directory> 範例: mongorestore --db mydatabase /path/to/backup 恢復特定集合(collection) 語法: mongorestore \ --db <database_name> \ --collection <collection_name> <path_to_collection_backup> 範例: mongorestore \ --db mydatabase \ --collection mycollection /path/to/backup/mycollection.bson 恢復到特定目錄 語法: mongorestore --db <database_name> --dir <path_to_backup_directory> 範例:...

2024-09-15 · 1 min · 164 words · Alan

快速了解 mongodump:MongoDB 資料庫備份必知工具

👨‍💻簡介 在資料庫管理和系統維護中,備份是非常重要的一環。對於使用 MongoDB 的開發者和資料庫管理員來說,mongodump 是一個非常實用的命令行工具,能夠快速且輕鬆地完成資料庫的備份和恢復。無論是進行資料遷移、系統升級,還是面對突發的故障,mongodump 都能提供穩定的資料保護。這篇文章會簡單介紹一下 mongodump 的基本概念、怎麼使用,以及它的優缺點,讓你能夠更全面地了解這個工具,為你的資料庫管理增添一份安全保障。 🔰基礎介紹 什麼是 mongodump ? mongodump 是 MongoDB 提供的一個命令行工具,用於備份資料庫資料。 它會將 MongoDB 資料庫中的資料導出成 BSON 格式的檔案,這些檔案可以用於後續的資料恢復或移轉。 mongodump 主要功能 mongodump 的主要用途是資料備份與恢復。開發者或資料庫管理員可以使用 mongodump 來建立資料庫的快照,確保在系統升級、遷移或故障時,能夠有完整的資料還原方案。 MongoDump 優缺點 優點 簡單易用:使用命令行即可輕鬆進行資料備份。 支援大規模資料:能夠高效處理大型資料庫。 可用於各種場景:無論是本地還是遠端資料庫都能支援。 支援跨平台:可在各種操作系統上使用。 缺點 無法熱備份:備份過程中會影響資料庫性能,特別是在大型資料庫或高負載環境下。 備份格式相對龐大:BSON 格式備份檔案較大,可能占用較多的磁碟空間。 安全性問題:備份時需要妥善處理資料和憑證,避免資料洩露。 🎯setup 基本指令 導出整個資料庫 語法: mongodump --db <database_name> 範例: mongodump --db mydatabase 導出特定集合(collection) 語法: mongodump --db <database_name> --collection 範例: mongodump --db mydatabase --collection mycolletion 導出到特定目錄 語法: mongodump --out <output_directory> 範例: mongodump --db mydatabase --out /path/to/backup 導出遠端 MongoDB 伺服器 語法: 使用參數組合指令 mongodump --host <mongo_host_or_ip> --port <port> --db <database_name> --username <username> --password <password> --authenticationDatabase <auth_database> 使用 URI:...

2024-09-08 · 1 min · 192 words · Alan

Telegram 憑證監控機器人實作 EP5 - 代碼優化

👨‍💻 簡介 在這篇文章中,我們將對 Telegram 憑證監控機器人的代碼進行優化。我們會新增一些簡單的指令,並且將部分變數改為從 yaml 檔案中讀取,而不是直接寫死在程式碼中。這些改進目的是提高可讀性和可維護性。 🛠️ 使用工具 Python 3.9.6 MongoDB TG Bot 📝 功能需求 新增 TG 指令 show_cert_info 新增 TG 指令 help 調整參數讀取 🎯Setup 新增 TG 指令 show_cert_info 這裡會用到之前寫的 get_ssl_cert 函數,可以印出證書來看一下有什麼資訊: {'subject': ((('countryName', 'US'),), (('stateOrProvinceName', 'California'),), (('localityName', 'San Francisco'),), (('organizationName', 'Wikimedia Foundation, Inc.'),), (('commonName', '*.wikipedia.org'),)), 'issuer': ((('countryName', 'US'),), (('organizationName', 'DigiCert Inc'),), (('commonName', 'DigiCert TLS Hybrid ECC SHA384 2020 CA1'),)), 'version': 3, 'serialNumber': '07419E39583A4C76CF1EA14347FA5F3A', 'notBefore': 'Oct 18 00:00:00 2023 GMT', 'notAfter': 'Oct 16 23:59:59 2024 GMT', 'subjectAltName': (('DNS', '*....

2024-06-19 · 3 min · 531 words · Alan

Telegram 憑證監控機器人實作 EP4 - 憑證資訊處理

👨‍💻 簡介 前篇已經將 TG Bot 整合 MongoDB,現在要將一些函數修改,在對 DB 進行操作前,先對 domain 進行驗證操作。 🛠️ 使用工具 Python 3.9.6 MongoDB TG Bot 📝 功能需求 新增 domain 前檢查 domain 憑證 透過 TG Bot 檢查所有 domain 是否有過期 🎯Setup 新增 domain 前檢查 domain 憑證 之前在撰寫 CloudFunction 時有使用到 get_ssl_cert_expiry_date 函數,在這裡先對這個函數做一個簡單的修改,將驗證憑證是否有效以及取得過期時間拆成兩個函數: def get_ssl_cert_info(domain, check_only=False): ssl_context = ssl.create_default_context() with ssl_context.wrap_socket(socket.socket(socket.AF_INET), server_hostname=domain) as conn: conn.settimeout(3.0) try: conn.connect((domain, 443)) if check_only: return True else: return conn.getpeercert() except Exception as e: print(f"無法獲取 {domain} 的 SSL,錯誤:{e}") return False if check_only else None def get_ssl_cert_expiry_date(cert): if cert is None: return None try: expire_date = datetime....

2024-06-02 · 2 min · 419 words · Alan

Telegram 憑證監控機器人實作 EP3 - 整合 MongoDB

👨‍💻 簡介 這一部分主要讓 TG Bot 可以接收指令,對 MongoDB 進行增刪改查,讓我能夠透過 TG Bot 來新增、修改、刪除 domain,這樣就能夠做到自動化管理,而且可以做到多環境的管理。 🛠️ 使用工具 Python 3.9.6 MongoDB TG Bot 📝 功能需求 透過 TG Bot 讀取 MongoDB 所有 domain 透過 TG Bot 讀取 MongoDB 特定 domain 透過 TG Bot 新增 Domain 到 MongoDB 透過 TG Bot 新增同一 env 底下多組 domain 到 MongoDB 透過 TG Bot 修改 MongoDB Domain 透過 TG Bot 刪除 MongoDB Domain 🎯Setup 透過 TG Bot 讀取 MongoDB 所有 domain 先將原本的 MongoDB 啟動起來,並放入值,接著來去呼叫 load_domain_envs_from_mongodb 這個 function...

2024-05-24 · 3 min · 533 words · Alan

Telegram 憑證監控機器人實作 EP2 - 打造自己的 TG Bot

👨‍💻 簡介 今天這篇主要是帶大家快速建立屬於自己的 Telegram bot,申請 bot 的部分我會附上網址,主要完成一些跟 Bot 的簡單回覆以及設定指令等等功能。 🛠️ 使用工具 Python 3.9.6 TG Bot 申請教學 📝 功能需求 輸入指令讓 TG Bot 回傳訊息 接受傳入參數並進行簡單回傳 設定 cronjob,固定時間回傳訊息 🎯Setup 要使用 TG Bot,可以使用 pyTelegramBotAPI 這個 Library,官網有簡單的範例可以讓我們快速上手。 輸入指令讓 TG Bot 回傳訊息 這個簡單的範例可以在你輸入 hello 時,做簡單的回傳: import telebot TOKEN = "your-token" # 建立機器人 bot = telebot.TeleBot(TOKEN) # 設定一個指令處理器,當收到指令 /hello 時觸發。 @bot.message_handler(commands=['hello']) def hello_command(message): # 發送一條消息到發送 /hello 指令的聊天中 bot.send_message(message, "Someone has started me!") # 讓機器人不斷運行,等待並處理任何消息或指令。 bot.infinity_polling() 要建立指令都會需要設定 message_handler,並且需要傳入 message 參數。 這個參數代表了觸發該指令的 Telegram 消息對象,透過這個 message 對象,你可以訪問到發送指令的用戶資訊、消息內容、聊天資訊等重要資料。...

2024-05-14 · 2 min · 358 words · Alan

Telegram 憑證監控機器人實作 EP1 - 讀取 MongoDB Domain Info

👨‍💻 簡介 上次做的憑證監控已經可以正常運作了,但這次希望能夠不從 yaml 讀取 domain info,而是從 MongoDB 進行讀取,方便未來的擴充性。 這次的重點是要透過 Python 連接 MongoDB,並且透過 Python 讀取 MongoDB,最後透過 Python 寫入 MongoDB。 🛠️ 使用工具 Python 3.9.6 MongoDB Mongoshell Docker Docker-Compose 📝 功能需求 建立 MongoDB docker-compose 透過 Python 連接 MongoDB 透過 Python 讀取 yaml 並寫入 MongoDB 透過 Python 傳入 env 以及 domain 寫入 MongoDB 透過 Python 讀取 MongoDB 透過 Python 修改 MongoDB 透過 Python 刪除 MongoDB 🎯Setup 建立 MongoDB docker-compose 要簡單使用 MongoDB 可以用 docker-compose 快速拉起: version: "3....

2024-05-06 · 5 min · 953 words · Alan
© 2024 艾倫的程式之旅 Powered by Hugo & PaperMod