บันทึกงานเซิร์ฟเวอร์จริง ที่ลงมือทำเอง แล้วเขียนให้คนอื่นใช้ต่อได้
สัปดาห์นี้
ดูทั้งหมด
Linuxสคริปต์ Python เปิด terminal ซ้อนอีกตัว เพราะ initialize(path=) ไม่ใช่ attach
Securityเปลี่ยนไฟร์วอลล์ผ่าน SSH แล้วล็อกตัวเอง: rollback แบบ flush คือกับดัก
DirectAdminแก้ quota ผ่าน DA API แล้วสิทธิ์ redis กับ login key หายเงียบ ๆ
Linuxprocess ลูกค้างเพราะไม่มีใครอ่าน stderr และตายเพราะคนอ่านปิดไปแล้ว
สคริปต์ Python เปิด terminal ซ้อนอีกตัว เพราะ initialize(path=) ไม่ใช่ attach
สคริปต์เก็บข้อมูลที่เรียก initialize(path=) ของ MT5 Python API ไม่ได้แค่ต่อเข้า terminal ที่เปิดอยู่ ถ้าไม่มีตัวไหนรัน มันสตาร์ตตัวใหม่ให้เอง แล้วได้ terminal ซ้อนที่แย่งโฟลเดอร์ข้อมูลกับบัญชีเดียวกัน บทความนี้เล่าวิธีทำโหมด attach-only การปักบัญชีตอนเริ่ม และวิธีจับ session ที่ตายเงียบหลัง terminal restart
เริ่มต้นที่นี่
ค่อย ๆ เรียนรู้จากงานจริงบทความล่าสุด
ดูทั้งหมด →
เปลี่ยนไฟร์วอลล์ผ่าน SSH แล้วล็อกตัวเอง: rollback แบบ flush คือกับดัก
สคริปต์ push ไฟร์วอลล์ nftables ไปยัง VPS ผ่าน SSH มี timer ย้อนกลับ 180 วินาทีเผื่อพลาด แต่รุ่นแรกย้อนด้วย nft flush ruleset ซึ่งถ้าถูกใช้จะทิ้งเครื่องไว้โดยไม่มีไฟร์วอลล์เลยตอนที่ล็อกตัวเองอยู่พอดี ผมแก้เป็นคืนกฎเดิม และให้เปิด SSH session ใหม่เป็นเงื่อนไขก่อนยกเลิก timer

แก้ 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

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

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

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

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

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

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

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