2016-05-22 8 views
0


Я никогда не использовал C, и я не пишу это по соображениям безопасности, я просто пишу этот скрипт, чтобы протестировать обновление через nsupdate для моего BIND для конкретной зоны, "zoneA.unix". Но я получаю «option: undefined variable»
И я не уверен, что это правильный способ сделать nsupdate через вход пользователя.nsupdate в базовом сценарии CSH для BIND в unix

echo "First of all we need to grab your username:" 
set uname = $< 
if ($uname == "zoneA")then 
echo "password: " 
set passwd = $< 
    if ($passwd == "Azone")then 
      echo "you are in" 
      echo "now to do the nsupdate" 
      echo "do you wish to (A)dd or (D)elete a record" 
      set numeric = $< 
        if ($numeric == "A")then 
        $option = "add" 
        $testinga = "add" 
        else if($numeric == "D")then 
        $option = "delete" 
        $testinga = "delete" 
        endif 
      echo "what to $testinga to the zone zoneA.unix?" 
      set innerzonename = $< 
      nsupdate -k /usr/local/etc/namedb/Keys/Kzonea.+157+57916.key -v 
      debug yes 
      zone zonea.unix 
      update $testinga $innerzonename 86400 A 127.0.0.1 
      show 
      echo "is this correct (Y)es (n)" 
      set sendoff = $< 
    if($sendoff == "Y")then 
    send 
    else if ($sendoff == "N")then 
    quit 
    endif 

Так что код работает отлично сезам $ опционной части, и я не уверен, если он будет работать после ввода необходимого во время nsupdate, потому что он не остановится, ну я не знаю, как я могу приостановить его.

То, что он делает, это запустить nsupdate и дождаться завершения nsupdate. так или иначе, я могу передать их в это?

+0

не уверен, что ваш код '$ option =" add "', и многие подобные утверждения должны делать. Или '' $ option "==" add "или' set option = "add" 'будет 2 вероятными исправлениями. Вы уже использовали эти две формы, так почему бы и нет сейчас? Удачи. – shellter

+0

Кроме того, 'debug yes zone ...' и т. Д. Ниже nsupdate выглядит подозрительно. Вы хотите подпитывать эти cmds/terms в nsupdate в качестве входных данных? Это не сработает. Если ваши счастливые файлы 'HERE' (с использованием' << EOS') могут работать. Перейдите через раздел csh по адресу http://www.grymoire.com/Unix/Csh.html, чтобы ускориться (и посмотрите, почему вы не должны тратить слишком много времени на 'csh'). Удачи. – shellter

+0

Здравствуйте, да, я подумываю о запуске только небольшого php-сервера, чтобы направить общий nsupdate в текстовый файл, а затем запустить nsupdate -v textfile.txt Но я обновил его. Теперь я повторяю все команды nsupdate текстовый файл и запуск nsupdate -v. я добавлю ответ на свой вопрос, если я позволю. –

ответ

1

На этом пути все, что я делаю, толкает nsupdate в текстовый файл и читает его из текстового файла, используя nsupdate -v. похоже, работает как шарм на данный момент

if ($uname == "zoneA")then 
echo "password: " 
set passwd = $< 
    if ($passwd == "Azone")then 
      echo "you are in" 
      echo "now to do the nsupdate" 
      echo "do you wish to add or delete a record" 
      set numeric = $< 
      echo "what to $numeric to the zone zoneA.unix?" 
      set innerzonename = $< 
      //nsupdate -k /usr/local/etc/namedb/Keys/Kzonea.+157+57916.key 
      echo "server "localhost"">>textfiles/stillneedanewname 
      echo "debug yes" >> textfiles/stillneedanewname 
      echo "zone zonea.unix" >> textfiles/stillneedanewname 
      echo "update $numeric $innerzonename.zonea.unix. 86400 A 136.186.230.90" >> textfiles/stillneedanewname 
      echo "show" >> textfiles/stillneedanewname 
      echo "send" >> textfiles/stillneedanewname 
      nsupdate -k /usr/local/etc/namedb/Keys/Kzonea.+157+57916.key -v textfiles/stillneedanewname 
+0

выглядит хорошо. Вы можете принять свой собственный ответ через 48 часов (я думаю, может быть, меньше), и получить больше очков репутации. Рад, что у вас есть рабочее решение. Удачи. – shellter

+0

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