heemaylได้ให้คำตอบที่ถูกต้องเพื่อให้cron
สามารถทำงานที่ด้านบนของชั่วโมงและด้านล่างของชั่วโมง ขอบคุณอีกครั้ง! อย่างไรก็ตามเนื่องจากผู้ใช้รายอื่นค้นพบcronjob
ไฟล์เสียงที่ไม่สามารถเล่นได้ตามค่าเริ่มต้น:
การกำหนดค่าcron
ให้เล่นเสียง
เพื่อที่cron
จะเล่นไฟล์เสียงมันต้องการexport
ตัวแปรสภาพแวดล้อม:
export XDG_RUNTIME_DIR="/run/user/1000"
เมื่อเสร็จแล้วในเสียงสคริปต์ของคุณจะเล่น
ในฐานะที่เป็นแหลมออกโดยคำตอบอื่นของ ID 1000
ผู้ใช้อาจไม่เป็น วิธีค้นหา ID ผู้ใช้ของคุณ:
$ id
uid=1000(rick) gid=1000(rick) groups=1000(rick),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
หาก ID ผู้ใช้ของคุณไม่ใช่ 1,000 ให้เปลี่ยนสคริปต์เป็น ID ของคุณ
กำหนดค่าcron
ให้ทำงานบนสุดของชั่วโมงและด้านล่างของชั่วโมง
crontab -e
การตั้งค่า (5 บรรทัดสุดท้ายเท่านั้น):
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
00 * * * * /usr/local/bin/top-of-hour-chime >/dev/null
00,30 * * * * /usr/local/bin/bottom-of-hour-chime >/dev/null
ผู้ใช้ส่วนใหญ่ตั้งค่าcron
ให้ใช้nano
โปรแกรมแก้ไข ใช้ปุ่มควบคุมเหล่านี้nano
เพื่อบันทึกงานของคุณ:
- เพิ่มสองบรรทัดสุดท้ายด้านบนและใช้Ctrl+ Oเพื่อเขียนO ut (บันทึก) ไฟล์
/tmp...
ชื่อไฟล์ที่จะนำเสนอ Enterแต่ไม่ต้องกังวลเพียงแค่กด
- ตอนนี้ใช้Ctrl+ Xเพื่อ e Xเป็นตัว
nano
แก้ไข
bottom-of-hour-chime
สคริปต์วิ่งไปที่ด้านบนของชั่วโมงเกินไป แต่ที่มีการตกลงตั้งแต่มันสั้นและหวาน
หากคุณไม่มี>/dev/null
บรรทัดท้ายcron
พยายามส่งอีเมลถึงคุณด้วยผลลัพธ์คำสั่ง หากคุณไม่มีการตั้งค่าเซิร์ฟเวอร์อีเมลข้อความแสดงข้อผิดพลาดจะปรากฏขึ้นใน/var/log/syslog
ไฟล์ของคุณ:
Oct 02 10:00:07 dell CRON[21259]: (CRON) info (No MTA installed, discarding output)
การกำหนดค่าcron
เพื่อแสดงการแจ้งเตือนแบบผุดขึ้น
สคริปต์จะแสดงข้อความแจ้งเตือนแบบผุดขึ้นที่ด้านบนของทุก ๆ ชั่วโมง ดังนั้นสำหรับตัวแปรเพิ่มเติมจำเป็นต้องส่งออก:
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";
เนื้อหาของ top-of-hour-chime
#! /bin/bash
# NAME: top-of-hour-chime
# PATH: /usr/local/bin
# DESC: Play sound called by cron
# CALL: Automatically called by /var/spool/cron/crontabs/<user_name>
# DATE: Created Oct 1, 2016. Modified June 10, 2018.
# UPDT: 2016-11-09 - Add notification bubble with time in text.
# 2018-06-10 - Switch from `ogg123` to `paplay` in default installation.
# exit # uncomment to suppress when watching movies
# paplay needs environment variable exported:
export XDG_RUNTIME_DIR="/run/user/1000"
# needed for notify-send
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";
# get hour in 12 hour format
HOUR=$(date +%I)
ZHOUR=$(echo $HOUR | sed 's/^0*//')
pactl set-sink-volume 0 -25%
DISPLAY=:0 notify-send --urgency=critical --icon=/usr/share/icons/gnome/256x256/status/appointment-soon.png "It is ""$ZHOUR"" o'clock"
paplay '/usr/share/sounds/ubuntu/ringtones/Melody piano.ogg'
pactl set-sink-volume 0 +25%
export XDG_RUNTIME_DIR...
มีความจำเป็นต้องได้รับเสียงที่จะเล่น นี่เป็นเพราะcron
ทำงานในสภาพแวดล้อมที่น้อยที่สุด บรรทัดนี้ควรละเว้นก่อนถ้าคุณใช้โปรแกรมเล่นเสียงของบุคคลที่สาม ถ้าไม่มีเสียงก็ใส่สายกลับ ถ้าอย่างนั้นก็ยังไม่มีเสียงล่าสัตว์มีความสุข!
ข่าวทีวีหลักสองเรื่องที่ฉันดูบนเน็ตนั้นมีระดับเสียงที่เบากว่าปกติดังนั้นฉันจึงหันทีวีขึ้นสูงกว่าปกติ ผลที่ตามมาเมื่อogg123
เล่นไฟล์เสียงจะมีเสียงดังมาก ดังนั้นpactl
จะใช้เพื่อลดระดับเสียงก่อนที่จะตีระฆังและเพิ่มขึ้นในภายหลัง
เนื้อหาของการตีระฆังชั่วโมงสุดท้าย
นี่เป็นสิ่งที่ซ้ำซ้อนtop-of-hour-chime
และอาจซ้ำซ้อนที่นี่ แต่รวมไว้เพื่อจุดประสงค์ในการจัดทำเอกสารเต็มรูปแบบ
#! /bin/bash
# NAME: bottom-of-hour-chime
# PATH: /usr/local/bin
# DESC: Play sound called by cron
# CALL: Automatically called by /var/spool/cron/crontabs/<user_name>
# DATE: Oct 1, 2016. Modified June 10, 2018.
# UPDT: 2018-06-10 Switch from `ogg123` to `paplay` installed by default.
# exit # Uncomment to suppress when watching movies.
# paplay needs environment variable exported:
export XDG_RUNTIME_DIR="/run/user/1000"
pactl set-sink-volume 0 -25%
paplay /usr/share/sounds/ubuntu/ringtones/Bliss.ogg
pactl set-sink-volume 0 +25%