cgi-io: extend backup file name
F. D. Ansel
fdansel at yandex.ru
Wed Aug 11 03:34:27 PDT 2021
it is now backup_HOST_rREV-HASH_YYYY-MM-DD_HHMM.tgz
HOST is without domain now, if fqdn was set
the extension changed form tar.gz to tgz
REV+HASH added for easier get of version
TIME added to allow more than 1 backup per day
added list of installed packages
-------------- next part --------------
From 37e9917a3f784b8f0338546129d4a319deaba013 Mon Sep 17 00:00:00 2001
From: Fritz D. Ansel <fdansel at yandex.ru>
Date: Mon, 2 Aug 2021 21:16:16 +0200
Subject: [PATCH] extend backup file name
it is now backup_HOST_rREV-HASH_YYYY-MM-DD_HHMM.tgz
HOST is without domain now, if fqdn was set
the extension changed form tar.gz to tgz
REV+HASH added for easier get of version
TIME added to allow more than 1 backup per day
added list of installed packages
Signed-off-by: Fritz D. Ansel <fdansel at yandex.ru>
---
main.c | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/main.c b/main.c
index 95a62b8..c0aa15b 100644
--- a/main.c
+++ b/main.c
@@ -650,7 +650,7 @@ main_backup(int argc, char **argv)
return failure(500, errno, "Failed chdir('/')");
execl("/sbin/sysupgrade", "/sbin/sysupgrade",
- "--create-backup", "-", NULL);
+ "-k", "--create-backup", "-", NULL);
return -1;
@@ -658,15 +658,31 @@ main_backup(int argc, char **argv)
close(fds[1]);
now = time(NULL);
- strftime(datestr, sizeof(datestr) - 1, "%Y-%m-%d", localtime(&now));
+ strftime(datestr, sizeof(datestr) - 1, "%Y-%m-%d_%H%M", localtime(&now));
if (gethostname(hostname, sizeof(hostname) - 1))
sprintf(hostname, "OpenWrt");
+ else {
+ for (int i=0; i<(int)strlen(hostname); i++)
+ if (hostname[i] == '.') {
+ hostname[i] = '\0';
+ break;
+ }
+ }
+
+ char version[32] = "UNKNOWN";
+ FILE *fp;
+ if ((fp = fopen("/etc/openwrt_version", "r")) != NULL) {
+ if (fgets(version, sizeof(version), fp) == version)
+ if (version[strlen(version)-1] == '\n' )
+ version[strlen(version)-1] = '\0';
+ fclose(fp);
+ }
printf("Status: 200 OK\r\n");
printf("Content-Type: application/x-targz\r\n");
printf("Content-Disposition: attachment; "
- "filename=\"backup-%s-%s.tar.gz\"\r\n\r\n", hostname, datestr);
+ "filename=\"backup_%s_%s_%s.tgz\"\r\n\r\n", hostname, version, datestr);
fflush(stdout);
--
2.31.1
More information about the openwrt-devel
mailing list