From 131168dc9e291958f7a03a7f5d022b1cd2e86037 Mon Sep 17 00:00:00 2001 From: "usman@cyberpersons.com" Date: Mon, 27 Feb 2023 13:15:01 +0500 Subject: [PATCH] function to create rclone backend --- plogical/Backupsv2.py | 32 ++++++++++++++++++++++++++++++++ serverStatus/views.py | 2 ++ 2 files changed, 34 insertions(+) diff --git a/plogical/Backupsv2.py b/plogical/Backupsv2.py index ee2061e21..45079165f 100644 --- a/plogical/Backupsv2.py +++ b/plogical/Backupsv2.py @@ -25,12 +25,44 @@ class CPBackupsV2: COMPLETED = 2 FAILED = 3 + ### RCLONE BACKEND TYPES + SFTP = 1 + LOCAL = 2 + RUSTIC_PATH = '/usr/bin/rustic' + RCLONE_CONFIG = '/root/.config/rclone/rclone.conf' + command = 'rclone obscure hosting' def __init__(self, data): self.data = data pass + def SetupRcloneBackend(self, type, config): + self.LocalRclonePath = f'/home/{self.website.domain}/.config/rclone' + self.ConfigFilePath = f'{self.LocalRclonePath}/rclone.conf' + + command = f'mkdir -p {self.LocalRclonePath}' + ProcessUtilities.executioner(command, self.website.externalApp) + + if type == CPBackupsV2.SFTP: + ## config = {"name":, "host":, "user":, "port":, "path":, "password":,} + command = f'rclone obscure {config["password"]}' + ObsecurePassword = ProcessUtilities.outputExecutioner(command).rstrip('\n') + + content = f'''[{config["name"]}] +type = sftp +host = {config["host"]} +user = {config["user"]} +pass = {ObsecurePassword} +''' + + command = f"echo '{content}' > {self.ConfigFilePath}" + ProcessUtilities.executioner(command, self.website.externalApp, True) + + command = f"chmod 600 {self.ConfigFilePath}" + ProcessUtilities.executioner(command, self.website.externalApp) + + @staticmethod def FetchCurrentTimeStamp(): import time diff --git a/serverStatus/views.py b/serverStatus/views.py index 9439b37e7..c62007a29 100755 --- a/serverStatus/views.py +++ b/serverStatus/views.py @@ -454,7 +454,9 @@ def refreshLicense(request): cpbuv2 = CPBackupsV2( {'domain': 'cyberpanel.net', 'BasePath': '/home/backup', 'BackupDatabase': 1, 'BackupData': 1, 'BackupEmails': 1}) + RcloneData = {"name":'testremote', "host":"", "user": "", "port": "22", "path": "custombackups", "password":"",} cpbuv2.InitiateBackup() + cpbuv2.SetupRcloneBackend(CPBackupsV2.SFTP, RcloneData) #cpbuv2.InstallRustic() final_dic = {'status': 1}