ปิดเซิร์ฟเวอร์ linux และเปิดอัตโนมัติตามเวลาที่กำหนด


8

ฉันมีงานที่อาจารย์กำลังขอให้ฉันสร้างสคริปต์ทุบตีเพื่อปิดเซิร์ฟเวอร์เวลา 23.00 น. และเปิดตอน 6 โมงเช้า ฉันสามารถทำได้โดยใช้sudo shutdown -h 23:00และใช้งานได้ แต่ปัญหาคือฉันไม่รู้ว่าจะเปิดอัตโนมัติตอน 6 โมงเช้าฉันไม่พบคำสั่งใด ๆ ที่สามารถทำได้ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม


คุณแน่ใจหรือไม่ว่าการมอบหมายของคุณขอให้คุณปิดเครื่องทั้งหมด (และเปิดใหม่อีกครั้ง) หรือกระบวนการเซิร์ฟเวอร์เดียว ต้องเปิดเครื่องทางกายภาพเพื่อทำสิ่งใด
Jos

พูดตามตรงฉันก็ไม่รู้เหมือนกันฉันก็คิดว่ามันคงเป็นไปไม่ได้ วิทยากรรู้สึกคลุมเครือมากในช่วงสั้น ๆ ที่ได้รับมอบหมายและมันก็ทำให้ฉันรู้สึกแย่เหมือนกัน
JLWK

คำตอบ:


10

ก่อนอื่นคุณต้องตรวจสอบว่าคุณสามารถใช้RTC wakealarmเพื่อปลุกระบบของคุณได้หรือไม่:

sudo sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"
sudo sh -c "echo `date '+%s' -d '+ 3 minutes'` > /sys/class/rtc/rtc0/wakealarm"
cat /sys/class/rtc/rtc0/wakealarm

ตรวจสอบตอนนี้:

cat /proc/driver/rtc

สิ่งนี้ควรส่งคืนรายการพารามิเตอร์ ตรวจสอบalrm_timeเวลา 3 นาทีในอนาคตและalrm_dateวันนี้

หากใช้งานได้ให้สร้าง/usr/local/sbin/shutwakeสคริปต์:

#!/bin/bash 
sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm" 
sh -c "echo `date '+%s' -d '+ 7 hours'` > /sys/class/rtc/rtc0/wakealarm" 
shutdown -h now

ในที่สุดแก้ไขผู้ใช้crontabของคุณพิมพ์crontab -eและเพิ่มบรรทัดต่อไปนี้:

0 23 * * * /usr/local/sbin/shutwake

ฉันขึ้นอยู่กับการตั้งค่านาฬิกา BIOS ให้ตรวจสอบ/etc/default/rcSว่าตั้ง UTC หรือไม่
Sylvain Pineau

ฉันพยายามอย่างเดียวกับสิ่งที่คุณเขียนด้านบน มันไม่ทำงาน :(. -Debian 8
Bálint Pap
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.