เคสนี้แบบว่าน่าจะเบลอด้วย ผมกำลังเขียน Script เพื่อทำ Automate จัดการพวก artifact ต่างๆ ตัว Script จะประมาณนี้ครับ Clear พื้นที่ Path ปลายทาง ก่อนจะนำเอา artifact ชุดใหม่ใส่เข้าไป
if (Test-Path "${env:GBASEOUTPUT}\\*") { Remove-Item "${env:GBASEOUTPUT}\\*" -Recurse -Force}
แต่ตอนที่ Execute ผ่าน Jenkins ปรากฏว่า มันนานผิดปกติ ปกติไม่ถึงวินาทีก็เสร็จแล้ว แต่ทว่ารอบนี้มัน run มาแล้ว 5 นาที ยังไม่เสร็จ ด้วยความแบบว่าเอ๊ะใจ มันเกิดอะไรขึ้นเลย Pause ไว้ก่อนครับ ความ Peak มันอยู่ที่ว่า ตอนจะเข้าไปดู Log ตัว Job + Log ใน Jenkins เองก็หายไปด้วยครับ ในใจคิดว่า มันไม่ใช่ rm -rf /* แบบในข่าวใช่ไหมมมมมมมมมมมมมมมมมมม
พอไปสารภาพบาปกับ Owner VM Peak ไปอีก !!! >> No backup
- ตอนนั้นในหัวแบบว่า ทำไงดี ตุ๊ดดดดดดดดดดดดดดดดดดดดดดดดดดดดดด นึกถึง Feature ที่แบบว่าไม่เคยใช้เลย เพราะ มันกินที่อย่าง System Restore
- ลองไปดูโอ้ว มี Check Point ตอนบ่าย 2 วันนั้นพอดี เลยลอง Restore ดู สรุปง่ายๆ
- OS มาครบ
- Program มาไม่ครบ เพราะลอง Run Script Test แล้วมันเดี้ยง เลยต้องมาทยอยลง Runtime ใหม่ ใช้เวลาไปเกือบเที่ยงวันยัดเที่ยงคืนเองงงง
- Data ไม่ได้ตรวจนะ ปกติจะเอาไปฝาก Drive D หรือไม่ทำเป็น Code ไว้กับ GitLab เลย อย่าง Task ที่มีปัญหาจะ Automate เพื่อ Pack Winform App นี่แหละ
สรุป
- ใน Linux คำสั่ง
rm -rf /*
- ก็มีใน PowerShell เหมือนกัน ต้องระวังด้วย แม้ว่าจะเขียน Test Path ดักแล้ว มันไป Run ที่ Root Drive C: เพราะ ถ้าตัวแปร GBASEOUTPUT มีค่าว่างแล้ว ตัวยทำลายล้างดีๆเลย
if (Test-Path "${env:GBASEOUTPUT}\\*") { Remove-Item "${env:GBASEOUTPUT}\\*" -Recurse -Force}
- ทำ Backup ไว้เสมอครับ และอย่า Test On Production ถ้าไม่มี Backup !!!!!!!!!!
- และก็สำหรับคนที่ใช้ jenkins อาจจะใช้ Plugin มาครอบการทำงานแทน เช่น File Operations Plugin (jenkins.io) อย่างน้อย base path คือ Workspace ครับ
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.