Как установить конкретный день (скажем, пятницу) для отправки электронной почты с помощью сценария командной оболочки mail?
Мне нужна логика для отправки почты только раз в неделю, например, один раз (пятница) используя сценарий оболочки.
mailx -s "Subject $DATE " -r "resource" -a $LOG a@gmail.com < status
Это письмо отправляется ежедневно?
Для многократного выполнения задачи необходимо настроить задание cron. Для этого сначала создадим скрипт задания, которое вы хотите выполнить.
Создайте файл с именем (например, mail.sh), в который введите следующее:
#!/bin/bash
mailx -s "Subject $DATE " -r "resource" -a $LOG a@gmail.com < status
Сохраните файл. Назначьте разрешение на выполнение скрипта, набрав в терминале:
$ chmod +x mail.sh
Запустите скрипт ./mail.sh
, чтобы убедиться, что он работает.
Теперь скрипт не будет автоматически запускаться каждую пятницу. Для этого установите crontab
.
$ sudo apt install crontab
Теперь введите в терминале:
$ crontab -e
Выберите ваш любимый редактор и добавьте строку в конце.
0 0 * * * 5 mylocation/mail.sh
Приведенный выше код будет запускать mail.sh каждую пятницу, обозначенную цифрой 5, ровно в 12.00, обозначенную цифрой 0 0.
Пожалуйста, обратитесь к ссылке, чтобы узнать о crontab. Вы также можете загуглить crontab. Я рекомендую вам изучить использование crontab и добавить только строку.