Вы можете получить дату следующего воскресенья, добавить N
дней и вывести название дня для этой конкретной даты:
getdayname () {
nextplus=$(date -d "next Sunday +$1 days")
date -d "${nextplus}" '+%A'
}
и запустить getdayname 2
, getdayname 7
и т. Д. (При условии дата GNU
).
Или просто используйте массив и без даты
, например
getdayname () {
local days=( Sunday Monday Tuesday Wednesday Thursday Friday Saturday )
printf %s\\n ${days[$1]}
}
хотя с bash
/ ksh
вам понадобится printf% s \\ n "$ {days [$ 1-1]}"
(как индексирование начинается с 0
), и кавычки необходимы, чтобы избежать split + glob (также с yash
).
Журнал сообщений об ошибках и ТОЧНОЕ время возникновения проблем. Это должно помочь администраторам sendmail выявлять проблемы в файлах журналов.
При массовой рассылке вам следует:
а) повторно использовать SMTP-соединение для отправки большого количества писем (например, 50)
б) ограничить количество сообщений, отправляемых в секунду (например, 20 -50)
Другие меры, которые я мог бы предложить, будут специфичными для sendmail и потребуют сотрудничества с администраторами sendmail.
Решение для команды sendmail - посмотреть на свой файл "/etc/mail/sendmail.mc":
dnl #
dnl # The following limits the number of processes sendmail can fork to accept
dnl # incoming messages or process its message queues to 20.) sendmail refuses
dnl # to accept connections once it has reached its quota of child processes.
dnl #
dnl define(`confMAX_DAEMON_CHILDREN', `20')dnl
dnl #
dnl # Limits the number of new connections per second. This caps the overhead
dnl # incurred due to forking new sendmail processes. May be useful against
dnl # DoS attacks or barrages of spam. (As mentioned below, a per-IP address
dnl # limit would be useful but is not available as an option at this writing.)
dnl #
dnl define(`confCONNECTION_RATE_THROTTLE', `3')dnl
(Treat "dnl" as a comment leadin string.)
Если вы просто рассылаете письма, то, вероятно, вам следует их дросселировать.