From 9312cf5f5ed7ad20dcceb0ebd4dd0fc27f9f237f Mon Sep 17 00:00:00 2001 From: Daniel Spitzer Date: Mon, 19 May 2025 20:20:02 +0200 Subject: [PATCH] =?UTF-8?q?Device=20Update=20*=20Backup=20Check=20Script?= =?UTF-8?q?=20noch=20mit=20meiner=20Email=20f=C3=BCr=20Live=20Test=20*=20B?= =?UTF-8?q?ackup=20Check=20bei=20Devices=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Layout/default/Device/Form.php | 10 ++- application/Device/DeviceController.php | 5 ++ application/Device/DeviceModel.php | 1 + public/assets/css/datatables-std.css | 2 +- scripts/device/check_last_config_backup.php | 82 +++++++++++++++++++++ 5 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 scripts/device/check_last_config_backup.php diff --git a/Layout/default/Device/Form.php b/Layout/default/Device/Form.php index fe72b8bcd..9f5c7860c 100644 --- a/Layout/default/Device/Form.php +++ b/Layout/default/Device/Form.php @@ -202,7 +202,15 @@ asort($Devices); - +
+ +
+
+ backup_check == "0") ? "" : "checked='checked'" ?> class="custom-control-input" value="1" id="backup_check" name="backup_check"> + +
+
+
diff --git a/application/Device/DeviceController.php b/application/Device/DeviceController.php index ee235cd49..a2abb53c6 100644 --- a/application/Device/DeviceController.php +++ b/application/Device/DeviceController.php @@ -164,6 +164,7 @@ class DeviceController extends mfBaseController $data['devicetype_id'] = $r->devicetype_id; $data['parent_id'] = $r->parent_id; $data['autobackup'] = trim($r->autobackup); + $data['backup_check'] = trim($r->backup_check); if (trim($r->pop_id) == "0") { $data['pop_id'] = NULL; @@ -193,6 +194,9 @@ class DeviceController extends mfBaseController if ($data['autobackup'] != "1") { $data['autobackup'] = "0"; } + if ($data['backup_check'] != "1") { + $data['backup_check'] = "0"; + } if (!$data['parent_id']) { $data['parent_id'] = NULL; } @@ -364,6 +368,7 @@ class DeviceController extends mfBaseController exit; } + private function uploadFile($id) { $r = $this->request; diff --git a/application/Device/DeviceModel.php b/application/Device/DeviceModel.php index 5ad359291..ae42e8d63 100644 --- a/application/Device/DeviceModel.php +++ b/application/Device/DeviceModel.php @@ -18,6 +18,7 @@ class DeviceModel public $addr_city = null; public $gps_long = null; public $autobackup = null; + public $backup_check = null; public $create_by = null; public $snmp_version = null; public $edit_by = null; diff --git a/public/assets/css/datatables-std.css b/public/assets/css/datatables-std.css index 9178d4285..ead8bbd51 100644 --- a/public/assets/css/datatables-std.css +++ b/public/assets/css/datatables-std.css @@ -93,7 +93,7 @@ table.dataTable > tbody > tr.child span.dtr-data { cursor: pointer; font-size: 25px; margin-top: 7px; - margin-left: 10px; + margin-left: 5px; } .spinner-ico { diff --git a/scripts/device/check_last_config_backup.php b/scripts/device/check_last_config_backup.php new file mode 100644 index 000000000..8c2d71fff --- /dev/null +++ b/scripts/device/check_last_config_backup.php @@ -0,0 +1,82 @@ +id); +define("INTERNAL_USER_USERNAME", $me->username); + +$url="https://thetool.xinon.at/Device/Detail?id="; +$devices = DeviceModel::getAll(); +//var_dump($timerecordingemployees); +$deviceBackupOld = []; +$devicesAll = []; +$deviceBackupNone = []; +foreach ($devices as $device) { + $devicesAll[$device->id] = $device; + if ($device->last_config_backup && $device->backup_check == 1) { + $timediff = time() - 7 * 24 * 60 * 60; + if ($device->last_config_backup < $timediff) { + $deviceBackupOld[$device->id] = $device->last_config_backup; + } + + } elseif ($device->backup_check == 1) { + $deviceBackupNone[$device->id] = $device->name; + } +} +$message = ""; +//create a tables +if (!empty($deviceBackupOld)) { + + asort($deviceBackupOld); + $message .= "

Devices mit Backups älter als 7 Tagen:

"; + $message .= ""; + $message .= ""; + foreach ($deviceBackupOld as $deviceId => $lastBackup) { + $message .= '"; + } + $message .= "
DeviceGerätetypIP-AdresseLetztes Backup
' . $devicesAll[$deviceId]->name . ''.$devicesAll[$deviceId]->devicetype->devicemanufactor->name." ".$devicesAll[$deviceId]->devicetype->name.''.$devicesAll[$deviceId]->ip.'' . date("d.m.Y H:i", $lastBackup) . "
"; +} +if (!empty($deviceBackupNone)) { + asort($deviceBackupNone); + $message .= "

Devices ohne Backup:

"; + $message .= ""; + $message .= ""; + foreach ($deviceBackupNone as $deviceId => $deviceName) { + $message .= ''; + } + $message .= "
DeviceGerätetypIP-Adresse
' . $deviceName . ''.$devicesAll[$deviceId]->devicetype->devicemanufactor->name." ".$devicesAll[$deviceId]->devicetype->name.''.$devicesAll[$deviceId]->ip.'
"; +} + +if (!empty($message)) { + $style=""; + $email = new Emailnotification(); + $email->setSubject('Backup Checks'); + $email->setHtmlBody($style.$message); + $email->setFrom('notify@xinon.at', 'Xinon Information'); + $email->setTo('daniel.spitzer@inode.at'); + $email->send(); +} \ No newline at end of file