From 8386c3509660f093982ad0241c0868c59f97ccfe Mon Sep 17 00:00:00 2001 From: Rottler Tamas Date: Mon, 18 May 2026 03:37:49 +0200 Subject: [PATCH] handle invalid utf8 characters in router configs --- routerbackup | 4 ++-- routerbackup.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/routerbackup b/routerbackup index 2bd4225..6b2cb9e 100755 --- a/routerbackup +++ b/routerbackup @@ -282,7 +282,7 @@ class RouterosConfig(Config): iproute.append(line) stdin, stdout, stderr = self.ssh.exec_command('/system backup save dont-encrypt=yes name=autobck') - output = str(stdout.read(), 'utf8') + output = str(stdout.read(), 'utf8', 'backslashreplace') if not re.search('Configuration backup saved', output): raise RuntimeError(f'"/system backup" failed: {output.strip()}') @@ -415,7 +415,7 @@ class ConfigWithShell(Config): raise RuntimeError(f'shell recv timeout (after receiving {len(output)} characters)') time.sleep(0.1) while channel.recv_ready(): - output += str(channel.recv(65536), 'utf8') + output += str(channel.recv(65536), 'utf8', 'backslashreplace') class AsaConfig(ConfigWithShell): diff --git a/routerbackup.yml b/routerbackup.yml index e3f9634..f50d0b5 100644 --- a/routerbackup.yml +++ b/routerbackup.yml @@ -1,6 +1,6 @@ --- - name: set router configuration backup directory - hosts: routeros,ciscoasa,!ciscoasa_slave,ciscoios,cisconexus,hpcomware + hosts: routeros,ciscoasa,!ciscoasa_slave,ciscoios,cisconexus,hpcomware,!no_routerbackup gather_facts: no tags: always tasks: @@ -11,7 +11,7 @@ routerbackup_maxage: 24 - name: use router backup role - hosts: routeros,ciscoasa,!ciscoasa_slave,ciscoios,cisconexus,hpcomware + hosts: routeros,ciscoasa,!ciscoasa_slave,ciscoios,cisconexus,hpcomware,!no_routerbackup gather_facts: no roles: - routerbackup