diff --git a/README.md b/README.md
index a86b00d..cf7e1f5 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,5 @@
# snmp-ifalias
-Perl script feeding the ifAlias table
\ No newline at end of file
+Perl script feeding the ifAlias table
+
+Inspirated from https://github.com/pgmillon/observium/blob/master/scripts/ifAlias_persist
diff --git a/ifAlias_persist b/ifAlias_persist
new file mode 100755
index 0000000..9f0180c
--- /dev/null
+++ b/ifAlias_persist
@@ -0,0 +1,52 @@
+#!/usr/bin/perl -w
+
+# SNMP::Extension::PassPersist is required.
+# This is in the package libsnmp-extension-passpersist-perl on Debian and
+# Ubuntu
+# And in the package dev-perl/SNMP-Extension-PassPersist from
+# https://git.grifon.fr/alarig/SwordArMor-gentoo-overlay.git overlay
+# Usage : Copy the script to /usr/local/bin/ifAlias_persist and add to
+# /etc/snmp/snmpd.conf
+# pass_persist .1.3.6.1.2.1.31.1.1.1.18 /usr/local/bin/ifAlias_persist
+
+use strict;
+use SNMP::Extension::PassPersist;
+
+
+# create the object
+my $extsnmp = SNMP::Extension::PassPersist->new(
+ backend_collect => \&update_tree,
+ idle_count => 10, # no more than 10 idle cycles
+ refresh => 60, # refresh every 60 sec
+);
+
+# run the program
+$extsnmp->run;
+
+sub update_tree {
+ my ($self) = @_;
+
+
+ my $Base = ".1.3.6.1.2.1.31.1.1.1.18";
+ # get the interfaces
+ my @iface_list = `ip l | grep mtu | cut -d @ -f 1`;
+ my $type = "string";
+
+ foreach my $row (@iface_list){
+ my @split = split(": ", $row);
+ # remove a possible \n
+ $split[1] =~ s/\R//g;
+
+ # cat the file
+ my $filename = "/sys/class/net/$split[1]/ifalias";
+ open(my $fh, '<:encoding(UTF-8)', $filename)
+ or die "Could not open file '$filename' $!";
+ # fill the OID with the content
+ while (my $desc = <$fh>) {
+ chomp $desc;
+ my ($key, $value) = ("$Base.$split[0]",$desc);
+ $self->add_oid_entry($key,$type,$value);
+ }
+ }
+
+}