EST. 2026 — บันทึกงานเซิร์ฟเวอร์จริง SYSADMIN · SECURITY · AI · DIRECTADMIN เล่มที่ 01
THE SYSADMIN ALMANAC

บันทึกงานเซิร์ฟเวอร์จริง ที่ลงมือทำเอง แล้วเขียนให้คนอื่นใช้ต่อได้

190 บทความ
08 หมวดหมู่

สัปดาห์นี้

ดูทั้งหมด
★ บทความเด่นประจำเล่ม สคริปต์ Python เปิด terminal ซ้อนอีกตัว เพราะ initialize(path=) ไม่ใช่ attach
Linux

สคริปต์ Python เปิด terminal ซ้อนอีกตัว เพราะ initialize(path=) ไม่ใช่ attach

สคริปต์เก็บข้อมูลที่เรียก initialize(path=) ของ MT5 Python API ไม่ได้แค่ต่อเข้า terminal ที่เปิดอยู่ ถ้าไม่มีตัวไหนรัน มันสตาร์ตตัวใหม่ให้เอง แล้วได้ terminal ซ้อนที่แย่งโฟลเดอร์ข้อมูลกับบัญชีเดียวกัน บทความนี้เล่าวิธีทำโหมด attach-only การปักบัญชีตอนเริ่ม และวิธีจับ session ที่ตายเงียบหลัง terminal restart

#automation#python#api#windows#ipc
อ่าน 10 นาที·4 พ.ย. 2026

เริ่มต้นที่นี่

ค่อย ๆ เรียนรู้จากงานจริง

บทความล่าสุด

ดูทั้งหมด →
เปลี่ยนไฟร์วอลล์ผ่าน SSH แล้วล็อกตัวเอง: rollback แบบ flush คือกับดัก
Security

เปลี่ยนไฟร์วอลล์ผ่าน SSH แล้วล็อกตัวเอง: rollback แบบ flush คือกับดัก

สคริปต์ push ไฟร์วอลล์ nftables ไปยัง VPS ผ่าน SSH มี timer ย้อนกลับ 180 วินาทีเผื่อพลาด แต่รุ่นแรกย้อนด้วย nft flush ruleset ซึ่งถ้าถูกใช้จะทิ้งเครื่องไว้โดยไม่มีไฟร์วอลล์เลยตอนที่ล็อกตัวเองอยู่พอดี ผมแก้เป็นคืนกฎเดิม และให้เปิด SSH session ใหม่เป็นเงื่อนไขก่อนยกเลิก timer

#firewall#security#hardening#ssh-hardening
อ่าน 12 นาที·3 พ.ย.
แก้ quota ผ่าน DA API แล้วสิทธิ์ redis กับ login key หายเงียบ ๆ
DirectAdmin

แก้ quota ผ่าน DA API แล้วสิทธิ์ redis กับ login key หายเงียบ ๆ

CMD_API_MODIFY_USER แบบ customize ถือว่าสวิตช์ที่ไม่ส่งไปคือปิด และ SHOW_USER_CONFIG ก็ไม่คืนสวิตช์บางตัวกลับมา เลยทำให้แก้ quota แล้ว redis, login keys และ suspend_at_limit ถูกปิดเงียบ ๆ บันทึกขั้นตอนที่ปลอดภัยพร้อม diff user.conf และ repquota

#directadmin#api#redis#shared-host
อ่าน 10 นาที·3 พ.ย.
process ลูกค้างเพราะไม่มีใครอ่าน stderr และตายเพราะคนอ่านปิดไปแล้ว
Linux

process ลูกค้างเพราะไม่มีใครอ่าน stderr และตายเพราะคนอ่านปิดไปแล้ว

เซิร์ฟเวอร์แบบ stdio ที่เคยผ่าน smoke test 9/9 ค้างนิ่งหลังเพิ่ม debug log ลง stderr บรรทัดละ 4 KB เพราะตัวเรียกเปิดท่อไว้แต่ไม่เคยอ่าน อีกด้านหนึ่ง process ลูกที่ต้องรันต่อหลังหน้าจอปิดจะพังทุกครั้งที่พิมพ์ ถ้า stdout ของมันเป็น pipe ที่ปลายอ่านตายไปแล้ว พร้อมวิธีส่ง handle ของไฟล์ให้ลูกสืบทอดด้วย CreateProcess จาก C#

#ipc#csharp#dotnet#windows
อ่าน 12 นาที·3 พ.ย.
XAMPP MySQL ดับเองเพราะ Aria log เสีย: ซ่อมโดยไม่ลบข้อมูล
Web

XAMPP MySQL ดับเองเพราะ Aria log เสีย: ซ่อมโดยไม่ลบข้อมูล

XAMPP MySQL สตาร์ตไม่ขึ้นหลังไฟดับและ panel ขึ้นแดง สาเหตุคือ Aria log ของตารางระบบเสีย ไม่ใช่ข้อมูล InnoDB บันทึกขั้นตอนอ่าน log จริง แยก Aria ออกจาก InnoDB สำรองก่อน แล้วซ่อมด้วย aria_chk โดยไม่ต้องลบฐานข้อมูล

#xampp#mariadb#mysql#windows
อ่าน 9 นาที·2 พ.ย.
ไฟล์ดาวน์โหลด 28 ไฟล์ชื่อเป็นเวลา จับคู่กลับงานด้วยเสียงและ Hungarian
Linux

ไฟล์ดาวน์โหลด 28 ไฟล์ชื่อเป็นเวลา จับคู่กลับงานด้วยเสียงและ Hungarian

ได้ไฟล์วิดีโอ 28 ไฟล์ที่ตั้งชื่อด้วยวันที่กับเวลา ไม่รู้ว่าไฟล์ไหนของงานไหน ผมกู้ความสัมพันธ์ด้วยเสียงร้องที่ฝังอยู่ในไฟล์ correlate กับแทร็กอ้างอิงเป็นเมทริกซ์ 28x28 แล้วใช้ linear_sum_assignment จับคู่หนึ่งต่อหนึ่ง รับเฉพาะคะแนนเกิน 0.90 และคัดลอกพร้อมตรวจ SHA-256

#scipy#python#ffmpeg#audit
อ่าน 10 นาที·2 พ.ย.
ผูก Claude CLI เข้าห้อง Telegram บน Windows บอทตอบใน 0 วินาที
AI

ผูก Claude CLI เข้าห้อง Telegram บน Windows บอทตอบใน 0 วินาที

ทำตัวห่อ Python รับข้อความจากห้อง Telegram แล้วป้อนเข้า Claude Code CLI แบบ headless บน Windows เจอกับดักสี่ข้อติดกันในคืนเดียว ตั้งแต่ cmd.exe ตัดข้อความหลายบรรทัด บอทตอบใน 0 วินาทีเพราะโปรเซสไม่ได้รัน ไปจนถึง agent รายงานว่าส่งไฟล์แล้วทั้งที่ไฟล์ไปเข้าแชทอื่น

#claude-code#claude#ai-agent#telegram
อ่าน 11 นาที·2 พ.ย.
เว็บเก่าขึ้น 500 เฉพาะเข้าครั้งที่สองของวัน หลังขึ้น PHP 8.1
Web

เว็บเก่าขึ้น 500 เฉพาะเข้าครั้งที่สองของวัน หลังขึ้น PHP 8.1

ตั้งแต่ PHP 8.1 mysqli โยน exception เป็นค่าเริ่มต้น โค้ดเก่าที่ INSERT ซ้ำแล้วเคยเงียบเลยทำให้หน้าตายเฉพาะครั้งที่สองของวันจาก IP เดิม เช็กหน้าเดียวครั้งเดียวไม่เจอ บันทึกวิธีพิสูจน์ วิธีแก้ด้วย INSERT IGNORE และกฎทดสอบสองรอบหลังขึ้น PHP ใหม่

#php#mysql#mariadb#debugging
อ่าน 9 นาที·1 พ.ย.
แก้หน้าสิบครั้งยิง IndexNow สิบครั้ง: ใช้คิวกับ debounce ใน Laravel
Web

แก้หน้าสิบครั้งยิง IndexNow สิบครั้ง: ใช้คิวกับ debounce ใน Laravel

เว็บ Laravel สองฉบับ ไทยกับอังกฤษ ที่อยากให้ Bing รู้ทันทีเมื่อหน้าเพิ่ม แก้ หรือถูกถอด แต่ถ้ายิง IndexNow ทุกครั้งที่บันทึกจะโดนบล็อกและเปลืองโควตา ผมเลยเก็บ URL เข้าตารางคิวด้วย model event รอให้เงียบ 120 วินาทีแล้วส่งเป็นชุดจาก cron ทุก 5 นาที พร้อมกติกาถอยและตาข่ายรองจาก sitemap

#seo#laravel#php#queue
อ่าน 12 นาที·1 พ.ย.
บอทตอบลูกค้าด้วย Claude CLI ต้องไม่เห็นกติกาส่วนตัวของเจ้าของเครื่อง
AI

บอทตอบลูกค้าด้วย Claude CLI ต้องไม่เห็นกติกาส่วนตัวของเจ้าของเครื่อง

ทำแชทบอทลูกค้าโดยให้ทุกข้อความเรียก claude -p บนเครื่องพัฒนา เครื่องเดียวกับที่มี CLAUDE.md ส่วนตัว memory ของโปรเจกต์อื่น และ token ใน env วิธีแยก context กับเครื่องมือออกเป็นสี่ชั้น ข้อทดสอบการรั่วก่อนเปิดใช้ ตัวเลขเวลาและต้นทุนต่อข้อความ และของที่ผิดในรอบแรก

#claude-code#claude#mcp#ai-agent
อ่าน 12 นาที·1 พ.ย.
ดูบทความทั้งหมด ↓

อยากให้เราทำให้ไหม?

ให้เราช่วยติดตั้ง ตั้งค่า ย้ายระบบ หรือแก้ปัญหาเซิร์ฟเวอร์ เพื่อให้คุณมีเวลาไปทำงานที่สำคัญกว่า

คุยเรื่องงานกับเรา