Как обещал, скрипты выгрузки адресной книги на DFL. Все делалось под linux с использованием openssh
Что именно скрипт делает: берет из текстового файла ab.txt и в соответствии с записями в нем создает/обновляет записи в адресной книге dfl. Фолдеры должны быть уже созданы. Удаленные в ab.txt записи в адресной книге dfl не удаляются.
Моей задаче, синхронизировать некоторое количество адресов по нескольким dfl, это решение полностью соответствует.
1. Генерим пару ключей
Код:
ssh-keygen -t dsa
Файл id_dsa.pub выгружаем через Web-интерфейс DFL. (Objects-Authentication Objects-Add-SSH Client Key) и прописываем ключ юзеру admin (User Authentication-Local User Databases-AdminUsers-Users-admin-SSH Public Key)
2. Файл исходной адресной книги
ab.txtФормат: фолдер имя ip
Код:
CommonIP ip1 133.123.123.123
CommonIP ip2 142.123.123.123
CommonIP ip3 252.123.123.123
Other BR_NET_140 192.168.140.0/24
3. awk скрипт
mkab.awkКод:
BEGIN {
cc=""
}
{
if ( cc != $1 ) {
cc = $1;
print ( "cc /\ncc Address AddressFolder " $1 );
}
print ( "add IP4Address " $2 " Address=" $3 );
print ( "set IP4Address " $2 " Address=" $3 );
}
END {
print ("activate\n" );
}
4. Скрипт который все делает
dfl_upload_abКод:
#!/bin/bash
sort ab.txt | awk -f mkab.awk > updateab.sgs
ssh -2 -i ~/.ssh/id_dsa admin@192.168.0.254 "script -remove -name=updateab.sgs"
scp -i ~/.ssh/id_dsa updateab.sgs admin@192.168.0.254:script/updateab.sgs
ssh -2 -i ~/.ssh/id_dsa admin@192.168.0.254 "script -execute -force -name=updateab.sgs"
sleep 10
ssh -2 -i ~/.ssh/id_dsa admin@192.168.0.254 "commit"