ครั้งแรกดูแลเซิร์ฟเวอร์วุ่นวาย ต้องรอ 3 โมงเช้า (คนไม่ได้ใช้) เพื่อ reboot คิดว่า "ตื่นเช้ามานี้ทำไม?" 5 วินาทีต่อมา: "นี่ Linux แหละ ต้อง automate ได้" → ค้นพบ at
at ใช้ง่ายมาก: ระบุเวลา/วันที่ → พิมพ์คำสั่งที่จะรัน → Ctrl+D จบ
ติดตั้ง at
- Debian/Ubuntu:
sudo apt install at - Fedora:
sudo dnf install at - Arch:
sudo pacman -S at - openSUSE:
sudo zypper install at
เปิดใช้งาน atd daemon
systemctl is-enabled atd.service # ถ้า disabled: sudo systemctl enable atd.service sudo systemctl start atd.service
ระบุเวลา/วันที่
- Relative:
at now + 10 minutes,at now + 10 hours,at now + 10 days,at now + 10 weeks - Exact time:
at 23:10(ถ้าเวลาผ่านไปแล้ว = วันพรุ่งนี้) - Exact date/time:
at 12:00 December 31 - รูปแบบอื่นดูใน
man at
ใช้งานคำสั่ง at
หลังระบุเวลา จะเข้าสู่ prompt at> พิมพ์คำสั่งทีละบรรทัด Enter กด Ctrl+D จบ (แสดง <EOT> และเวลาที่จะรัน)
ต้องการ root privileges? อย่าใช้ sudo (ไม่มีใครพิมพ์รหัสผ่านให้) → sudo -i เข้า root shell → ใช้ at ปกติ → exit ออก
ถ้าเครื่องปิดก่อนเวลาที่排定 → จะรันตอนบูทครั้งต่อไป (ถ้าเวลาผ่านไปแล้ว)
ดู/ลบงานที่排定
atqหรือat -l: รายการงานรอat -c <job_number>: ดูคำสั่งภายในงานatrm <job_number>: ลบงาน
รัน GUI Application ด้วย at
- หา DISPLAY:
echo $DISPLAY(มักเป็น:0) - ใน at prompt:
export DISPLAY=:0→ รัน GUI app (เช่นzenity --info --text="Reminder") - App จะโผล่บนหน้าจอเตือนคุณ
สรุป
at ใช้ง่าย ส่วนยากคือ "คิดไอเดีย" จะสั่งทำอะไร: เริ่มดาวน์โหลด, ปิดโปรแกรม, standby, reboot, แจ้งเตือน ฯลฯ อะไรก็ได้ที่ CLI ทำได้