пароли от почтовых ящиков
добрый день! на сервере 300 почтовых ящиков
подскажите какой командой из командной строки вывести пароли от почтовых ящиков
возможно ли это ?
/usr/local/mgr5/sbin/mgrctl -m ispmgr email.edit name=webmaster@site.ru и так далее
11.12.2024 10:16
Можете получить пароли для ящиков с помощью такого вот bash скрипта, например:
#!/bin/sh
/usr/local/mgr5/sbin/mgrctl -m ispmgr email | while read -r LINE
do
eval "${LINE}"
eval "$(/usr/local/mgr5/sbin/mgrctl -m ispmgr email.edit elid=${name})"
echo "${elid},${passwd}"
done
11.12.2024 10:31
Проблема тут в том, что eval рекомендуется использовать на тестовых данных. Потому что если в данных есть какие-то специфичные символы, парсинг поломается. На настоящих данных надо использовать какой-то нормальный парсинг.
11.12.2024 10:43
eval ломался на некоторых ящиках
вот что выдал chatgpt
#!/bin/sh
/usr/local/mgr5/sbin/mgrctl -m ispmgr email | while read -r LINE
do
# Разбиваем строку на параметры
name=$(echo "$LINE" | awk -F'name=' '{print $2}' | awk '{print $1}')
if [ -n "$name" ]; then
# Используем grep для извлечения нужных данных из команды email.edit
output=$(/usr/local/mgr5/sbin/mgrctl -m ispmgr email.edit elid="$name")
# Извлекаем elid и passwd из вывода команды
elid=$(echo "$output" | grep -oP 'elid=\K\S+')
passwd=$(echo "$output" | grep -oP 'passwd=\K\S+')
echo "${elid} ${passwd}"
fi
done
все выводит без ошибок
22.12.2024 06:11