summaryrefslogtreecommitdiff
path: root/scripts/vyatta-op-dynamic-dns.pl
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2018-07-29 21:37:59 +0200
committerChristian Poessinger <christian@poessinger.com>2018-07-29 21:38:32 +0200
commit859a37be6fe184f4bc2a092541e84e7905dfdcc0 (patch)
treef47b79d605edc32056d0a8d8f5f03605daed5d18 /scripts/vyatta-op-dynamic-dns.pl
parentaed0b57ae3a27be8e285fce5ae46e48082c96f23 (diff)
downloadvyatta-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-xscripts/vyatta-op-dynamic-dns.pl132
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