diff options
author | Christian Poessinger <christian@poessinger.com> | 2018-07-29 21:37:59 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2018-07-29 21:38:32 +0200 |
commit | 859a37be6fe184f4bc2a092541e84e7905dfdcc0 (patch) | |
tree | f47b79d605edc32056d0a8d8f5f03605daed5d18 /scripts/vyatta-op-dynamic-dns.pl | |
parent | aed0b57ae3a27be8e285fce5ae46e48082c96f23 (diff) | |
download | vyatta-op-859a37be6fe184f4bc2a092541e84e7905dfdcc0.tar.gz vyatta-op-859a37be6fe184f4bc2a092541e84e7905dfdcc0.zip |
T758: add 'show dns dynamic status' op mode command
Diffstat (limited to 'scripts/vyatta-op-dynamic-dns.pl')
-rwxr-xr-x | scripts/vyatta-op-dynamic-dns.pl | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/scripts/vyatta-op-dynamic-dns.pl b/scripts/vyatta-op-dynamic-dns.pl deleted file mode 100755 index 3b4f60b..0000000 --- a/scripts/vyatta-op-dynamic-dns.pl +++ /dev/null @@ -1,132 +0,0 @@ -#!/usr/bin/perl -# -# Module: vyatta-op-dynamic-dns.pl -# -# **** License **** -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2 as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2008 Vyatta, Inc. -# All Rights Reserved. -# -# Author: Mohit Mehta -# Date: September 2008 -# Description: Script to execute op-mode commands for Dynamic DNS -# -# **** End License **** -# - -use lib "/opt/vyatta/share/perl5/"; -use Getopt::Long; -use Vyatta::Config; -use strict; -use warnings; - -sub print_ddns_stats { - my $ddclient_cache_dir = '/var/cache/ddclient'; - my @ddns_interfaces = get_ddns_interfaces(); - - if (@ddns_interfaces > 0){ - foreach my $configuredinterface (@ddns_interfaces) { - my $no_interface = `ip addr show dev $configuredinterface 2>/dev/null`; - my $no_ip = `ip addr show dev $configuredinterface 2>/dev/null | grep "inet "`; - my @all_cached_entries = `grep "^atime" $ddclient_cache_dir/ddclient_$configuredinterface.cache 2>/dev/null`; - if (@all_cached_entries > 0) { - foreach my $each_entry (@all_cached_entries) { - print "interface : $configuredinterface"; - if ($no_interface eq ""){ - print " [ Interface does not exist ]"; - } elsif ($no_ip eq ""){ - print " [ Currently no IP address ]"; - } - print "\n"; - my @split_on_ip = split(/ip=/, $each_entry); - if (@split_on_ip > 1){ - my @ip = split(/,/, $split_on_ip[1]); - print "ip address : $ip[0]\n"; - } - my @split_on_host = split(/host=/, $each_entry); - my @host = split(/,/, $split_on_host[1]); - print "host-name : $host[0]\n"; - my @split_on_atime = split(/atime=/, $each_entry); - my @atime = split(/,/, $split_on_atime[1]); - my $prettytime = scalar(localtime($atime[0])); - print "last update : $prettytime\n"; - my @split_on_status = split(/status=/, $each_entry); - my @status = split(/,/, $split_on_status[1]); - print "update-status: $status[0]\n"; - print "\n"; - } - } else { - print "interface : $configuredinterface"; - if ($no_interface eq ""){ - print " [ Interface does not exist ]"; - } elsif ($no_ip eq ""){ - print " [ Currently no IP address ]"; - } else { - print " \n[ Status will be updated within 60 seconds ]"; - } - print "\n\n"; - } - } - } else { - print "Dynamic DNS not configured\n"; - } - print "\n"; -} - -sub get_ddns_interfaces { - - my $vyatta_config = new Vyatta::Config; - $vyatta_config->setLevel("service dns dynamic"); - my @ddns_interfaces = $vyatta_config->listOrigNodes("interface"); - @ddns_interfaces = sort(@ddns_interfaces); - return (@ddns_interfaces); - -} - -# -# main -# - -my ($show_status, $update_ddns, $interface, $show_interfaces); - -GetOptions("show-status!" => \$show_status, - "update-ddns!" => \$update_ddns, - "interface=s" => \$interface, - "show-interfaces!" => \$show_interfaces); - -if (defined $show_status) { - print_ddns_stats; -} - -if (defined $update_ddns && defined $interface) { - my @ddns_interfaces = get_ddns_interfaces(); - my $interface_configured = 0; - foreach my $ddns_interface (@ddns_interfaces) { - if ($ddns_interface eq $interface) { - $interface_configured = 1; - } - } - if ($interface_configured == 1) { - system("sudo /opt/vyatta/sbin/vyatta-dynamic-dns.pl --op-mode-update-dynamicdns --interface $interface"); - } else { - print "$interface has not been configured to send Dynamic DNS updates\n"; - } -} - -if (defined $show_interfaces) { - my @ddns_interfaces = get_ddns_interfaces(); - print "@ddns_interfaces\n"; -} - -exit 0; - -# end of file |