ค้นหาเว็บไซต์

วิธีใช้คำสั่ง 'at' เพื่อกำหนดเวลางานตามเวลาที่กำหนดหรือภายหลังใน Linux


ทางเลือกอื่นนอกเหนือจากตัวกำหนดเวลางาน cron คำสั่ง at ช่วยให้คุณสามารถกำหนดเวลาคำสั่งให้รันหนึ่งครั้งในเวลาที่กำหนดโดยไม่ต้องแก้ไขไฟล์การกำหนดค่า

ข้อกำหนดเพียงอย่างเดียวประกอบด้วยการติดตั้งยูทิลิตี้นี้และเริ่มและเปิดใช้งานการดำเนินการ:

yum install at              [on CentOS based systems]
sudo apt-get install at     [on Debian and derivatives]

ถัดไป เริ่มต้นและเปิดใช้งานบริการ at ในเวลาบูต

--------- On SystemD ---------
systemctl start atd
systemctl enable atd

--------- On SysVinit ---------
service atd start
chkconfig --level 35 atd on

เมื่อ atd กำลังทำงาน คุณสามารถกำหนดเวลาคำสั่งหรืองานได้ดังต่อไปนี้ เราต้องการส่งข้อมูลปิง 4 รายการไปยัง www.google.com เมื่อนาทีถัดไปเริ่มต้นขึ้น (เช่น หากเป็น 22:20:13 คำสั่งจะดำเนินการเวลา 22:21:00) และรายงานผลลัพธ์ผ่านทางอีเมล (-m ต้องใช้ Postfix หรือเทียบเท่า) ไปยังผู้ใช้ที่เรียกใช้คำสั่ง:

echo "ping -c 4 www.google.com" | at -m now + 1 minute

หากคุณเลือกที่จะไม่ใช้ตัวเลือก -m คำสั่งจะถูกดำเนินการ แต่จะไม่มีการพิมพ์ใดๆ ไปยังเอาต์พุตมาตรฐาน อย่างไรก็ตาม คุณสามารถเลือกที่จะเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์แทนได้

นอกจากนี้ โปรดทราบว่า at ไม่เพียงแต่อนุญาตเวลาคงที่ต่อไปนี้: ตอนนี้ เที่ยงวัน (12:00 น.) และเที่ยงคืน (00:00 น.) แต่ยังกำหนดตัวเลข 2 หลักเองด้วย (แทนเวลาทำการ) และ เวลา 4 หลัก (ชั่วโมงและนาที)

ตัวอย่างเช่น,

หากต้องการรัน updatedb เวลา 23.00 น. วันนี้ (หรือพรุ่งนี้หากวันที่ปัจจุบันมากกว่า 23.00 น.) ให้ทำดังนี้

echo "updatedb" | at -m 23

หากต้องการปิดระบบเวลา 23:55 วันนี้ (ใช้เกณฑ์เดียวกับในตัวอย่างก่อนหน้านี้):

echo "shutdown -h now" | at -m 23:55

คุณยังสามารถชะลอการดำเนินการเป็นนาที ชั่วโมง วัน สัปดาห์ เดือน หรือปี โดยใช้เครื่องหมาย + และกำหนดเวลาที่ต้องการตามตัวอย่างแรก

ข้อกำหนดด้านเวลาขึ้นอยู่กับมาตรฐาน POSIX

สรุป

ตามหลักการทั่วไป ให้ใช้ at แทนตัวกำหนดเวลางาน cron ทุกครั้งที่คุณต้องการรันคำสั่งหรือดำเนินการงานที่กำหนดในเวลาที่กำหนดไว้อย่างดีเพียงครั้งเดียวเท่านั้น สำหรับสถานการณ์อื่นๆ ให้ใช้ cron

ต่อไป เราจะกล่าวถึงวิธีการเข้ารหัสไฟล์เก็บถาวร tar โดยใช้ openssl จนกระทั่งยังคงเชื่อมต่อกับ Tecmint