как создать сценарий манифеста

В Exim есть встроенный способ устранения подобных проблем: режим тестирования адресов.

$ /usr/sbin/exim4 -bt postmaster@gmail.com
R: domain_literal for postmaster@gmail.com
R: dnslookup_secure for postmaster@gmail.com
postmaster@gmail.com
  router = dnslookup_secure, transport = remote_smtp_secure
  host gmail-smtp-in.l.google.com      [2607:f8b0:400d:c0d::1a] MX=5
  host gmail-smtp-in.l.google.com      [209.85.232.26]          MX=5
⋮ 

Две строки R: говорят о том, какие маршрутизаторы он пробует, вторая - в моем конфиге, чтобы заставить почту на определенные общие домены с поддержкой TLS (например, gmail.com) отправляться по TLS.

Другой пример, на другой машине:

$ /usr/sbin/exim4 -bt postmaster@gmail.com
R: smarthost for postmaster@gmail.com
postmaster@gmail.com
  router = smarthost, transport = remote_smtp_smarthost
  host einstein.home [192.168.65.24]

Эта машина настроена на использование интеллектуального хоста, который обрабатывает всю исходящую почту. Видно, что он использует маршрутизатор smarthost и маршрутизирует через smarthost einstein.home.

Возможно, вам потребуется запустить проверку адреса от имени привилегированного пользователя. В моей установке это не требуется.

1
12.05.2017, 16:02
2 ответа

Ну, это не очень красиво, но должно сработать.

for i in $(ls | cut -d. -f1 | uniq); do if [ -f $i.gpg ]; then base_size=$(ls  -al $i| cut -d" " -f5); gpg_size=$(  ls  -al $i.gpg| cut -d" " -f5); md5_sum=$(md5sum $i.gpg | awk '{ print $1 }') ; echo  $i $base_size $gpg_size $md5; fi; done
-1
28.01.2020, 00:55

Я предполагаю, что ваши имена файлов не содержат встроенных символов новой строки.

В Linux:

#! /usr/bin/env bash
find /some/dir -type f -maxdepth 1 \! -name '*.gpg' | \
while read -r f; do
    esc=${f##*/}
    esc=${esc//\\/\\\\}
    esc=${esc//\"/\\\"}
    md5=$(md5sum "$f".gpg | awk '{print $1}')
    printf '"%s" "%d" "%d" "%s"\n' "$esc" $(stat -c %s "$f") $(stat -c %s "$f".gpg) "$md5"
done

В *BSD:

#! /bin/sh
find /some/dir -type f -maxdepth 1 \! -name '*.gpg' | \
while read -r f; do
    esc=$(printf '%s\n' "$f" | sed 's#.*/##; s/\([\\"]\)/\\\1/g')
    md5=$(md5 -q "$f".gpg)
    printf '"%s" "%d" "%d" "%s"\n' "$esc" $(stat -f %z "$f") $(stat -f %z "$f".gpg) "$md5"
done
0
28.01.2020, 00:55

Теги

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