heemayl đã cung cấp câu trả lời chính xác cron
để chạy vào đầu giờ và cuối giờ. Cảm ơn một lần nữa! Tuy nhiên, vì những người dùng khác đã phát hiện ra một cronjob
tệp âm thanh không thể phát theo mặc định:
Cấu hình cron
để phát âm thanh
Để cron
phát các tệp âm thanh, nó cần đến export
một biến môi trường:
export XDG_RUNTIME_DIR="/run/user/1000"
Một khi điều này được thực hiện trong kịch bản của bạn âm thanh sẽ phát.
Như được chỉ ra bởi một câu trả lời khác, ID người dùng của bạn có thể không phải lúc nào cũng vậy 1000
. Để tìm ID người dùng của bạn, hãy sử dụng:
$ id
uid=1000(rick) gid=1000(rick) groups=1000(rick),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
Nếu ID người dùng của bạn không phải là 1000, thì hãy thay đổi tập lệnh thành ID của bạn.
Cấu hình cron
để chạy đầu giờ và cuối giờ
crontab -e
thiết lập (chỉ 5 dòng cuối cùng):
# 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
Hầu hết người dùng thiết lập cron
để sử dụng nano
trình chỉnh sửa. Sử dụng các phím điều khiển này nano
để lưu công việc của bạn:
- Thêm hai dòng cuối cùng ở trên và sử dụng Ctrl+ Ođể ghi O ut (lưu) tệp.
- Một
/tmp...
tên tệp được trình bày, nhưng đừng quan tâm, chỉ cần nhấn Enter.
- Bây giờ sử dụng Ctrl+ Xđể e X nó
nano
trình soạn thảo.
Các bottom-of-hour-chime
chạy kịch bản ở phía trên cùng của giờ quá nhưng, đó là OK vì nó ngắn và ngọt ngào.
Nếu bạn không có dòng >/dev/null
cuối cron
cố gắng gửi email cho bạn với đầu ra lệnh. Nếu bạn không cài đặt máy chủ thư, thông báo lỗi sẽ xuất hiện trong /var/log/syslog
tệp của bạn :
Oct 02 10:00:07 dell CRON[21259]: (CRON) info (No MTA installed, discarding output)
Định cấu hình cron
để hiển thị thông báo bật lên
Kịch bản hiển thị một thông báo thông báo bật lên ở đầu mỗi giờ. Vì vậy, đối với điều này, một biến bổ sung cần phải được xuất:
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";
Nội dung của 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%
Điều export XDG_RUNTIME_DIR...
cần thiết là có được âm thanh để chơi. Điều này là do cron
chạy trong môi trường tối thiểu. Dòng này nên được bỏ qua trước nếu bạn sử dụng trình phát âm thanh của bên thứ ba. Sau đó, nếu không có âm thanh đặt dòng trở lại. Sau đó vẫn còn nếu không có âm thanh, cũng hạnh phúc săn bắn!
Hai chương trình tin tức truyền hình chính mà tôi xem qua mạng có âm lượng mềm hơn bình thường nên tôi bật TV lên cao hơn bình thường. Do đó, khi ogg123
phát các tập tin âm thanh, chúng phát ra âm thanh rất lớn. Vì vậy, pactl
được sử dụng để giảm âm lượng trước khi chuông và tăng nó sau đó.
Nội dung của tiếng chuông báo giờ
Đây gần như là một bản sao top-of-hour-chime
và có lẽ là dư thừa ở đây, nhưng được bao gồm cho các mục đích tài liệu đầy đủ.
#! /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%