0 Ответов
Если всей кучей, то “однострочник” на bash получается таким:
for i in `/usr/local/ispmgr/sbin/mgrctl -m ispmgr user | awk ‘{print $1}’ | awk -F= ‘{print $2}’`; do echo -n “/usr/local/ispmgr/sbin/mgrctl -m ispmgr user.edit “; /usr/local/ispmgr/sbin/mgrctl -m ispmgr user.edit elid=$i |tr ‘\n’ ‘ ‘ |tr -d ‘\n’; echo “shell=on sok=ok”; done|bash
если разобрать по частям:
командой
/usr/local/ispmgr/sbin/mgrctl -m ispmgr user | awk ‘{print $1}’ | awk -F= ‘{print $2}’
получаем список всех пользователей
командой
echo -n “/usr/local/ispmgr/sbin/mgrctl -m ispmgr user.edit “
начинаем формировать запрос по API для изменения параметров каждого пользователя.
командой
/usr/local/ispmgr/sbin/mgrctl -m ispmgr user.edit elid=$i |tr ‘\n’ ‘ ‘ |tr -d ‘\n’;
выводим список всех параметров для каждого пользователя и форматируем из данных в виде таблицы в один столбик:
/usr/local/ispmgr/sbin/mgrctl -m ispmgr user.edit elid=user
name=user
disklimit=0
domain
preset=custom
phpmod=on
bandwidthlimit=100000000
baselimit=1
baseuserlimit=1
domainlimit=1
ftplimit=1
maildomainlimit=1
maillimit=10
mailrate=0
webdomainlimit=1
в полный запрос к ISPmanager, согласно документации, такого плана
/usr/local/ispmgr/sbin/mgrctl -m ispmgr user.edit elid=user name=user disklimit=0 shell=on domain=domain preset=custom phpmod=on php=on bandwidthlimit=100000000 baselimit=4 baseuserlimit=1 domainlimit=1 ftplimit=1 maildomainlimit=1 maillimit=10 mailrate=0 webdomainlimit=1
и уже командой:
echo “shell=on sok=ok”
добавляем новый параметр и окончание запроса. после чего скармливаем сформированные запросу снова командной оболочке bash.