Перенаправьте определенный адрес электронной почты, отправленный пользователю другим почтовым получателям

Я думаю, что единственное, чего вам не хватает, это чтобы изначально включить все каталоги, ведущие к архивным дирсам, т.е. также --include='*/'. Это потому, что исключение каталога (с '*') исключает все, что под ним

rsync --include='*/' --include='**archive/***' --exclude='*' -avzh /xx/inbound/ /yy/inbound

Кроме этого, вам не нужны 2 набора из '-авж'

1
13.04.2017, 15:13
2 ответа

Я исправил проблему с ProCmail.

Источник: http://www.netikka.net/tsneti/info/proctips.php#forward

Ниже приведен пример:

#Get the sender's bare email address from the first "From" line
FROM_=`formail -c -x"From " \
         | expand | sed -e 's/^[ ]*//g' -e 's/[ ]*$//g' \
         | awk '{ print $1 }'`

#Get the original subject of the email
#Discard superfluous tabs and spaces
#On some systems -xSubject: has to be -x"Subject: "
SUBJ_=`formail -c -xSubject: \
         | expand \
         | sed -e 's/  */ /g' \
         | sed -e 's/^[ ]*//g' -e 's/[ ]*$//g'`

#Whatever other recipes you'll use

:0
* ^From:.*infolist@([-a-z0-9_]+\.)*infohost\.infodom
# Avoid email loops
* ! ^X-Loop: myid@myhost\.mydom
{
  :0c:   #Preserve a copy of the email
  Infolist.mail
  :0fwh  #Adjust some headers before forwarding
  | formail -A"X-Loop: myid@myhost.mydom" \
            -A"X-From-Origin: ${FROM_}" \
            -i"Subject: $SUBJ_ (fwd)"
  # Forward the email
  :0
  !mydept@myhost.mydom
}
1
27.01.2020, 23:37

Сначала необходимо проверить, подключен ли процесс к терминалу.

$ ps -eo comm,tty | grep fsck

Теперь, если вы по-прежнему можете видеть значение TTY рядом с вашим процессом, вы по-прежнему можете получить его вывод (из этого TTY). Текущий идентификатор TTY можно получить с помощью tty . Однако, если рядом с вашим процессом есть ? , боюсь, вы не сможете получить его вывод в любом случае (если вы не использовали что-то вроде экрана ).

Если процесс все еще подключен к работающему терминалу, можно вернуть процесс на передний план с помощью fg (в этом терминале, конечно):

$ jobs
$ fg [job ID]

задания выдадут идентификатор, связанный с запущенным процессом fsck.ext4 . Затем используйте его при вызове fg . Можно также вызвать fg без аргументов, если в фоновом режиме имеется только одно задание.

Я не знаком с fsck.ext4 , но используемый вами переключатель -t , похоже, печатает статистику (отредактируйте: также как и параметр -C 0 ). Вернув процесс на передний план, вы получите этот вывод обратно. Однако, если fsck.ext4 не был запущен с подробными параметрами, он не будет печатать ничего, независимо от того, находится ли он на переднем плане или в фоновом режиме. В этом случае можно просто проверить, выполняется ли он по-прежнему с помощью ps .

Когда вы закончите, просто нажмите Ctrl + Z , чтобы снова отправить процесс в фоновом режиме. Будьте осторожны, если процесс подключен к терминалу (то есть, если программа принадлежит сеансу управления терминала), то закрытие терминала отправит SIGHUP процессу и убьет его (если только вы не заставили fsck.ext4 игнорировать SIGHUP ).

-121--139948-

Следующее, кажется, работает просто хорошо в моем sh :

$ myvar="test"
$ echo "My var is $myvar."
My var is test.

Нет необходимости эхо значение переменной и поймать его снова в другой. Вот немного больше информации о назначениях переменных .

Объект , OSTYPE не определен в среде sh . Вам придется передать его при выполнении сценария. Так что, вместо того, чтобы бежать...

$ /bin/sh yourscript.sh
or
$ ./yourscript.sh

Необходимо выполнить:

$ OSTYPE=$OSTYPE /bin/sh yourscript.sh
or
$ OSTYPE=$OSTYPE ./yourscript.sh

Конечно, предполагается, что родительская оболочка, в которой вводится приведенная выше команда, имеет переменную OSTYPE . В то время как bash делает, это не случай каждой оболочки. Вместо $ OSTYPE можно использовать uname :

$ OS=$(uname -o)
$ echo "My OS is $OS."
My OS is GNU/Linux.
$ echo "My OS is $(uname -o)."
My OS is GNU/Linux.

На моей машине для переменной OS устанавливается значение GNU/Linux , а не linux-gnu (которое является содержимым моего OSTYPE ).

В качестве побочного примечания я предполагаю, что эквивалент вашего кода может быть:

$ myvar="$(echo $OSTYPE)"
$ echo "My var is $myvar."
My var is linux-gnu
-121--244812-

Используйте псевдоним следующим образом:

user: user, user2

В соответствии с local (8) man page:

При обнаружении адреса в собственном псевдонимевместо этого выполняется доставка пользователю.

Чтобы не получить бесконечную рекурсию.

1
27.01.2020, 23:37

Теги

Похожие вопросы