Shell และสคริปต์

How to set a crontab to run command on the last day of every month.

crontab scheduleเป็นที่ทราบกันดีว่าใน crontab ของ linux มีแค่การกำหนด เวลา วัน เดือน ในการทำงานเท่านั้น หากว่าจะต้องการให้ทำงานในวันสุดท้ายของเดือน หรือ เสาร์แรกของเดือน จะไม่สามารถทำได้ แต่ถ้าหากรู้วิธีการเขียน script ก็สามารถใช้ script มาช่วยในการควบคุมการทำงานอีกต่อหนึ่งได้ ซึ่งในบทความนี้ผมได้นำตัวอย่าง script ที่ใช้ร่วมกับ crontab เพื่อให้สามารถกำหนดวันการทำงานได้อย่างถูกต้องตามความต้องการมากขึ้น ตัวอย่าง script ที่จะให้ทำงานในวันสุดท้ายของเดือน สร้างไฟล์ lastdaymonth.sh

[root@Ezylinux ~]# vi /root/lastdaymonth.sh

#!/bin/bash

TODAY=`/bin/date +%d`
TOMORROW=`/bin/date +%d -d "1 day"`

# See if tomorrow's day is less than today's
if [ $TOMORROW -lt $TODAY ]; then
        COMMAND //ใส่คำสั่งที่ต้องการให้ทำงาน
fi
exit 1

สร้าง schedule การทำงาน

[root@Ezylinux ~]# crontab -e

1 0 * * * /root/lastdaymonth.sh 

ตัวอย่าง script ที่จะให้ทำงานในวันเสาร์แรกของเดือน สร้างไฟล์ 1stSat.sh

[root@Ezylinux ~]# vi /root/1stSat.sh

#!/bin/bash

DAY=`date +%d`
if (($DAY <= 7)) ; then
   COMMAND //ใส่คำสั่งที่ต้องการให้ทำงาน
fi
exit 1

สร้าง schedule การทำงาน

[root@Ezylinux ~]# crontab -e
1 0 * * 6 /root/1stSat.sh
EOF.← กลับไปอ่านบทความอื่น