วันพฤหัสบดีที่ 5 สิงหาคม พ.ศ. 2553

Linux : คำสั่ง date กับการประยุกต์ใช้

ในบางครั้งอาจต้องมีการเขียน shell script เพื่อให้ทำงานบางอย่างที่มีส่วนเกี่ยววันที่ เช่น สร้างไฟล์ที่มีรูปแบบชื่อไฟล์ดังนี้

file.YYYY-MM-DD.txt เช่น log.2010-08-31.txt

ซึ่งบางที ส่วนของวันที่ที่สนใจ อาจไม่ใช่วันที่ปัจจุบัน อาจเป็นเมื่อวาน หรือ 10 วันที่แล้ว หรือพรุ่งนี้ หรืออีก 10 วันข้างหน้า เป็นต้น

ถ้าเป็นการสร้างไฟล์เองโดยผู้ใช้ก็คงไม่ยาก ก็แค่พิมพ์ แต่ถ้าเป็น Cron job หล่ะ เราอาจต้องบอกให้ script ให้รู้จักการหาวันที่รูปแบบที่เราต้องการก่อน โดยในที่นี้ผมจะใช้คำสั่ง date ใน Linux

ระบบที่ใช้ทดสอบ : Ubuntu 9.10

รูปแบบปกติ
komkit@moccona:~$ date <--- คำสั่งที่ใช้
Fri Aug 6 13:35:16 ICT 2010 <--- ผลลัพธ์ที่ได้ จะเป็นวันที่และเวลาปัจจุบัน

ต้องการให้อยู่ในรูปแบบ YYYY-MM-DD
komkit@moccona:~$ date +%F <--- คำสั่งที่ใช้
2010-08-06 <--- ผลลัพธ์ที่ได้ จะเป็นวันที่ปัจจุบันในรูปแบบ YYYY-MM-DD

ต้องการวันที่เมื่อวาน ในรูปแบบ YYYY-MM-DD
komkit@moccona:~$ date --date="yesterday" +%F <--- คำสั่งที่ใช้
2010-08-05 <--- ผลลัพธ์ที่ได้ จะเป็นวันที่เมื่อวานในรูปแบบ YYYY-MM-DD

ต้องการวันที่ 10 วันที่แล้วในรูปแบบ YYYY-MM-DD
komkit@moccona:~$ date --date="10 day ago" +%F <--- คำสั่งที่ใช้
2010-07-27 <--- ผลลัพธ์ที่ได้ จะเป็นวันที่เมื่อวานในรูปแบบ YYYY-MM-DD

ต้องการวันที่วันพรุ่งนี้ ในรูปแบบ YYYY-MM-DD
komkit@moccona:~$ date --date="tomorrow" +%F <--- คำสั่งที่ใช้
2010-08-07 <--- ผลลัพธ์ที่ได้ จะเป็นวันที่พรุ่งนี้ในรูปแบบ YYYY-MM-DD

ต้องการวันที่ 10 วันข้างหน้าในรูปแบบ YYYY-MM-DD
komkit@moccona:~$ date --date="10 day" +%F <--- คำสั่งที่ใช้
2010-08-16 <--- ผลลัพธ์ที่ได้ จะเป็นวันที่พรุ่งนี้ในรูปแบบ YYYY-MM-DD


ทีนี้ก็เอาไปประยุกต์ใช้แล้วแต่ความต้องการได้เลยครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น