Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
root@swaggserver-01:~/bin# ./pingy-swagg.pl 10.169.169.169 pinging 10.169.169.169 via ICMP... not reachable!! restart zebra ospfd ospf6d... Failed to restart zebra\x20ospfd\x20ospf6d.service: Unit not found. Done!! waiting 9 seconds to cont... root@swaggserver-01:~/bin# root@swaggserver-01:~/bin# vi pingy-swagg.pl root@swaggserver-01:~/bin# cat pingy-swagg.pl #!/usr/bin/env perl # # danielbowling424@msn.com # http://swagg.cc/ # # Copyright 2019 Daniel Bowling, Mount Rainier, Maryland, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is # permitted provided that the following conditions are met: # # 1. Redistributions of this script must retain the above copyright # notice, this list of conditions and the following disclaimer. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. use strict; use warnings; use Net::Ping; # https://perldoc.perl.org/Net/Ping.html use Regexp::Common qw(net); # Net::Ping must be up-to-date for IPv6!! my $p4 = Net::Ping->new("icmp"); my $p6 = Net::Ping->new("icmpv6"); my $svmgr = "systemctl"; my $svact = "restart"; my @svcs = ("zebra", "ospfd", "ospf6d"); my $sleepy = 9; sub rest_svc { print "not reachable!!\n$svact @svcs... "; system("$svmgr", "$svact", "@svcs"); print "Done!!\nwaiting $sleepy seconds to cont... "; sleep ($sleepy); } sub ping_ip { if ($_ =~ m/$RE{net}{IPv4}/) { print "pinging $_ via ICMP... "; if ($p4->ping($_, 2)) { print "success!!\n" } else { rest_svc(); } } elsif ($_ =~ m/$RE{net}{IPv6}/) { print "pinging $_ via ICMPv6... "; if ($p6->ping($_, 2)) { print "success!!\n" } else { rest_svc(); } } } foreach (@ARGV) { if ($_ =~ m/[A-F]*/) { $_ =~ tr/[A-F]/[a-f]/; # toggle case } ping_ip($_); } $p4->close(); $p6->close();
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)