ดูเหมือนว่าฉันสามารถปิดการใช้งานsudo shutdown
โดยระบุเวลาหรือนาที
มีวิธีการระบุวันที่และเวลาสำหรับการปิดระบบหรือไม่?
ดูเหมือนว่าฉันสามารถปิดการใช้งานsudo shutdown
โดยระบุเวลาหรือนาที
มีวิธีการระบุวันที่และเวลาสำหรับการปิดระบบหรือไม่?
คำตอบ:
คุณสามารถทำได้โดยตรงจากshutdown command
, ดูman shutdown
:
SYNOPSIS
/sbin/shutdown [-akrhPHfFnc] [-t sec] time [warning message]
[...]
time When to shutdown.
ตัวอย่างเช่น:
shutdown -h 21:45
ที่จะทำงานshutdown -h
ที่ 21:45
สำหรับคำสั่งที่ไม่มีฟังก์ชั่นนี้คุณสามารถลองหนึ่งใน:
at
ภูตถูกออกแบบมาสำหรับแม่นยำนี้ คุณอาจต้องติดตั้งขึ้นอยู่กับระบบปฏิบัติการของคุณ บนระบบที่ใช้เดเบียนสามารถทำได้ด้วย:
sudo apt-get install at
มีสามวิธีในการให้คำสั่งแก่at
:
ท่อมัน:
$ echo "ls > a.txt" | at now + 1 min
warning: commands will be executed using /bin/sh
job 3 at Thu Apr 4 20:16:00 2013
บันทึกคำสั่งที่คุณต้องการเรียกใช้ในไฟล์ข้อความจากนั้นส่งไฟล์นั้นไปที่at
:
$ echo "ls > a.txt" > cmd.txt
$ at now + 1 min < cmd.txt
warning: commands will be executed using /bin/sh
job 3 at Thu Apr 4 20:16:00 2013
คุณยังสามารถส่งat
คำสั่งจาก STDIN:
$ at now + 1 min
warning: commands will be executed using /bin/sh
at> ls
จากนั้นกดCtrlDเพื่อออกจากat
เปลือก ls
คำสั่งจะถูกเรียกใช้ในหนึ่งนาที
คุณสามารถให้เวลาที่แม่นยำมากในรูปแบบของ[[CC]YY]MMDDhhmm[.ss]
เช่นเดียวกับใน
$ at -t 201403142134.12 < script.sh
สิ่งนี้จะเรียกใช้สคริปต์script.sh
เวลา 21:34 และ 12 วินาทีในวันที่ 14 มีนาคม 2014
อีกวิธีคือใช้ตัวcron
กำหนดตารางเวลาซึ่งออกแบบมาเพื่อทำงานตามเวลาที่กำหนด มันมักจะใช้สำหรับงานที่จะทำซ้ำ แต่คุณสามารถให้เวลาที่กำหนด ผู้ใช้แต่ละคนมี "crontabs" ของตนเองซึ่งควบคุมงานที่จะดำเนินการและเมื่อใด รูปแบบทั่วไปของ crontab คือ:
* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
ตัวอย่างเช่นสิ่งนี้จะทำงานls
ทุกวันเวลา 14:04 น:
04 14 * * * ls
วิธีตั้งค่า cronjob สำหรับวันที่ระบุ:
สร้าง crontab crontab -e
ใหม่โดยการทำงาน นี่จะเป็นการเปิดหน้าต่างโปรแกรมแก้ไขข้อความที่คุณโปรดปราน
เพิ่มบรรทัดนี้ลงในไฟล์ที่เพิ่งเปิด ตัวอย่างเฉพาะนี้จะทำงานเวลา 14:34 ในวันที่ 15 มีนาคม 2014 ถ้าวันนั้นเป็นวันศุกร์ (เช่นนั้นตกลงมันอาจทำงานมากกว่าหนึ่งครั้ง):
34 14 15 5 /path/to/command
บันทึกไฟล์และออกจากโปรแกรมแก้ไข
คำตอบ SO นี้ชี้ให้เห็นวิธีที่จะให้มันทำงานเพียงครั้งเดียว แต่ฉันไม่เคยใช้มันดังนั้นฉันจึงไม่สามารถรับรองได้
shutdown
ในขณะที่พวกเขาไม่เคยบอกควรจะใช้สำหรับ แม้ว่าฉันจะรู้สึกถึงประสบการณ์ที่เลวร้ายนั่นก็ไม่น่ายินดี
shutdown
การกำหนดเวลาและcron
ในคำตอบเดียวกัน ... ไม่ว่าจะเป็นเวิร์กสเตชันหรือเซิร์ฟเวอร์อีเมลของผู้ใช้ 1,000 ราย (ประสบการณ์ที่น่าเศร้าของฉัน) เป็นเรื่องเกี่ยวกับผลที่ตามมาของนิสัยที่ไม่ดี
shutdown
cron
(โดยเฉพาะกับใครบางคนที่ไม่รู้ว่าทำไมมันเป็นความคิดที่น่ากลัว)
ไม่คุณไม่สามารถระบุวันที่ที่คำสั่ง shutdown ได้ แต่มีสองทางเลือก:
1)ที่ง่ายที่สุดคือการใช้เวลาคำสั่ง ตัวอย่างต่อไปนี้จะทำงานshutdown +5
ในเวลาและวันที่ระบุ:
echo "shutdown +5" | at 10:05am 2019-01-19
2)หากคุณไม่คำนึงถึงการใช้เครื่องคิดเลขและต้องการปิดระบบใน 24 ชั่วโมง (24 * 60 = 1440 นาที) และคุณมั่นใจอย่างยิ่งว่าระบบจะไม่รีบูตในระหว่าง:
shutdown -r +1440
at
คำสั่งด้วยซ้ำ
at
ไม่สมควรได้รับการอธิบาย ฉันสามารถเห็นคุณเชื่อเป็นอย่างอื่น มุมมองที่แตกต่าง
shutdown
คำสั่งvan Smoorenburg, Upstart และ systemd ไม่อนุญาตการระบุวันที่ แต่ชุดเครื่องมือของ nosh shutdown
ทำหน้าที่สนับสนุนไวยากรณ์ BSD ที่ยาวนาน
มันจะปิดระบบของคุณเวลา 12:00 น.:
$ sudo shutdown -h 12:00
ตัวเลือก:
-h, -P, --poweroff
ปิดเครื่อง
-r, --reboot
รีบูทเครื่อง
-c
ยกเลิกการปิดระบบที่ค้างอยู่