diff --git a/registry/scripts/registry.sh b/registry/scripts/registry.sh
index 838be8d165eb9f9ac80041366c45b1d21494f968..0120e969c515ea0290b593531e15e01a8cf3ae3d 100755
--- a/registry/scripts/registry.sh
+++ b/registry/scripts/registry.sh
@@ -19,7 +19,7 @@
 getip(){
     awk '/^lease/{IP=$2} /hardware ethernet/{gsub(";","",$3);if($3 == "'$1'"){print IP}}' \
         < /var/lib/dhcp/dhcpd.leases
-}
+    }
 
 IP=$(ip a | awk '/inet.*containers/ {print $2}' | cut -d / -f 1)
 port=9998
@@ -39,7 +39,7 @@ else
             LINES="$LINES\n$(date +%Y%m%d) $(echo $line | cut -d ' ' -f 2-)"
         fi
     done < $conf_file
-    echo $LINES > $conf_file
+    echo -e $LINES > $conf_file
 fi
 
 while true
@@ -47,7 +47,16 @@ do
     line=`netcat -l $IP $port`
     if [ $(echo "$line" | egrep -c "^([0-9a-f]{2}:?){6} .*$") -eq 1 ]
     then
-        echo "$(date +%Y%m%d) $line" >> $conf_file
+        date=$(date +%Y%m%d)
+        res=$(grep "$line" $conf_file)
+        if [ ! -z "$res" ]
+        then
+            # Update
+            sed -i -e "s/^.*$line$/$date $line/" $conf_file
+        else
+            # Add
+            echo "$date $line" >> $conf_file
+        fi
     fi
 done