Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

จัดตารางคำสั่งใน Linux ด้วย Utility "at"

ครั้งแรกดูแลเซิร์ฟเวอร์วุ่นวาย ต้องรอ 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

ระบุเวลา/วันที่

  1. Relative: at now + 10 minutes, at now + 10 hours, at now + 10 days, at now + 10 weeks
  2. Exact time: at 23:10 (ถ้าเวลาผ่านไปแล้ว = วันพรุ่งนี้)
  3. Exact date/time: at 12:00 December 31
  4. รูปแบบอื่นดูใน 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

  1. หา DISPLAY: echo $DISPLAY (มักเป็น :0)
  2. ใน at prompt: export DISPLAY=:0 → รัน GUI app (เช่น zenity --info --text="Reminder")
  3. App จะโผล่บนหน้าจอเตือนคุณ

สรุป

at ใช้ง่าย ส่วนยากคือ "คิดไอเดีย" จะสั่งทำอะไร: เริ่มดาวน์โหลด, ปิดโปรแกรม, standby, reboot, แจ้งเตือน ฯลฯ อะไรก็ได้ที่ CLI ทำได้