Я пытаюсь добавить новую команду к своей собственной оболочке, такой как:
alarm 7.15 music.wav
Я хочу создать задание крона, таким образом, оно может планировать предупреждение ежедневно в данное время. Так, я создаю файл для каждого вызова предупреждения, названного musicFile.txt
Вот мой файл удара для выполнения: (musicFile.txt)
#!/bin/bash
15 7 * * * XDG_RUNTIME_DIR=/run/user/$(id -u) play -q /home/harun/Desktop/music.wav > alarmFile
crontab alarmFile
rm -f alarmFile
rm -f musicFile.txt
И я выполняю этот комментарий с execvp:
bash musicFile.txt
Однако ничего не происходит. Как я должен поставить будильник с crontab?
В моем случае я выполняю crontab использование текущего сеанса пользователя:
$ crontab -e
* * * * * /usr/bin/play -q /home/user/test/bell.wav
Это делает звук, играющий каждую минуту.
Сначала попытайтесь использовать более простые команды.
Если Вы хотите настроить предупреждение для различных пользователей, Вы могли бы использовать crontab -e
от их терминальных сеансов. Для переключения на другой пользовательский терминальный сеанс использовать su username
команда.
Но, лучше, вместо того, чтобы использовать команды с параметрами в crontab, используйте сценарий и укажите его путь в crontab. Не забывайте chmod +x yourscriptpath
и также, не забывайте указывать полные пути к двоичным файлам и проверять Ваши сценарии путем выполнения sh pathtoyour/script.sh
Если Вы могли бы выполнить следующее в терминале:
XDG_RUNTIME_DIR=/run/user/$(id -u) play -q /home/harun/Desktop/music.wav > alarmFile
crontab alarmFile
rm -f alarmFile
rm -f musicFile.txt
Затем Вы могли попытаться добавить его в своем crontab файле crontab -e
выполнение команды и путем редактирования его:
15 7 * * * XDG_RUNTIME_DIR=/run/user/$(id -u) play -q /home/harun/Desktop/music.wav > /home/harum/alarmFile && /bin/rm -f /home/harun/alarmFile && /bin/rm -f /home/harum/musicFile.txt
Чтобы проверить, работает ли это теперь, просто замените 15 7
* *
.
Создание сценария:
vim.tiny /home/harum/alarm.sh
#!/bin/bash
XDG_RUNTIME_DIR=/run/user/$(id -u) play -q /home/harun/Desktop/music.wav > /home/harum/alarmFile && /bin/rm -f /home/harun/alarmFile && /bin/rm -f /home/harum/musicFile.txt
Создание исполняемого файла сценария:
chmod +x /home/harum/alarm.sh
Добавление сценария к crontab:
crontab -e
15 7 * * * /home/harum/alarm.sh