HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/plogical/__pycache__/IncScheduler.cpython-310.pyc
o

��hF`�@s�ddlZddlZddlZej�d�ej�dd�ddlZe�	�ddl
mZddlm
Z
ddlmZddlmZddlZddlZdd	lmZmZmZmZdd
lmZddlZddlZddlZddlmZddl m!Z!dd
l"m#Z#ddl$m%Z%ddl&Z&ddl'Z'ddlm(Z(m)Z)ddl*m+Z+z&ddl,m-Z-m.Z.ddl/Z/ddl0m1Z1ddl2m3Z3ddl4m5Z6ddl7m8Z8WnYddl9Z:Gdd�de:j;�Z<dd�Z=e>dkr�e=�dSdS)�Nz/usr/local/CyberCP�DJANGO_SETTINGS_MODULEzCyberCP.settings)�SystemInformation)�IncJobs)�	BackupJob)�randint)�GitLogs�Websites�GDrive�
GDriveJobLogs)�WebsiteManager)�Credentials)�build)�MediaFileUpload��backupSchedule)�NormalBackupJobs�NormalBackupJobLogs)�TransferConfig)�
BackupPlan�
BackupLogs)�virtualHostUtilities)�
mailUtilities)�CyberCPLogFileWriter��ProcessUtilitiesc@s�eZdZdZdZe�d�ZdZdZ	dZ
dZdd	�Zd
d�Z
edd
��Zedd��Zedd��Zedd��Zedd��Zedd��Zedd��Zedd��Zedd��Zedd��Zed d!��Zed"d#��Zed$d%��Zed&d'��Zed(d)��Zd*S)+�IncSchedulerz/home/cyberpanel/incbackuplogsz/home/cyberpanel/git�%m.%d.%Y_%H-%M-%S�	frequency�allSites�
currentStatus�lastRuncCstj�|�||_||_dS)N)�multi�Thread�__init__�function�data)�selfr$�	extraArgs�r(�+/usr/local/CyberCP/plogical/IncScheduler.pyr#7s
zIncScheduler.__init__cCs8|jdkrt�|jd�dS|jdkrt��dSdS)N�startBackup�freq�CalculateAndUpdateDiskUsage)r$rr*r%r,)r&r(r(r)�run<s


�zIncScheduler.runc
Cs�z�t�tjdd�dttdd��}tj��D]�}t�tjd|j	|j
fd�|j
|kr�|j��D]�}t�tjd|jd�i}|j|d<||d	<|j	|d
<|j
dkrXd|d<nd
|d<|jdkrfd|d<nd
|d<|jdkrtd|d<nd
|d<d
|d<td|�}|��	tj�|�r�t|d���}|�d�dkr�t�|�t�tjd|jd�n"|�d�dkr�zt�|�WnYt�tjd|j|fd�nq�q1qWdSty�}zt�dt|��WYd}~dSd}~ww)Nz!Starting Incremental Backup job..��/home/cyberpanel/���'z4Job Description:

 Destination: %s, Frequency: %s.
 zBacking up %s.�website�tempPath�backupDestinationsT�websiteDataF�websiteDatabases�
websiteEmails�websiteSSLs�createBackup�r�	Completed���z
Backed up %s.z[5009]z Failed backup for %s, error: %s.z%s [startBackup])�logging�statusWriterr�logPath�strrr�objects�all�destinationr�jobsites_setr2r5r6�websiteDataEmailsr�start�os�path�exists�open�read�find�remove�
BaseException�writeToFile)�typer3�job�webr'�startJob�result�msgr(r(r)r*Bsf
��










����= ��zIncScheduler.startBackupc
Cs��z>t�tj�D�]3}d}tjj|d�}d||t�d�f}d|}t	|d|d��
�dtj|f}t�|�D]�}z�d||f}t�t
|d	����}i}	|d
|	d
<|d|	d<d|t�d
�f|	d<|d|kr�t�}
|
�d|	�}t�|j�}|ddkr�d|d|df}d||f}t	|d|d��
�nd|d|df}d||f}t	|d|d��
�|d|kr�t�}
|
�d|	�}t�|j�}|ddkr�t	|d|dd��
�d||df}nt	|d|dd��
�d||df}Wq7t�y}zd|t|�f}d||f}WYd}~q7d}~wwd||t�d�f}d||f}t�|j|j|d|j�t	|d|d��
�qWdSt�y\}zt�dt|��WYd}~dSd}~ww)N���domainz7[%s Cron] Checking if %s has any pending commits on %s.rz%s
�INFO)�ownerrP�message�%s/%sr:rX�folderz'Auto commit by CyberPanel %s cron on %sz%m-%d-%Y_%H-%M-%S�
commitMessage�
autoCommitr.�statuszFolder: %s, Status: %s�
commandStatusz%s
%s�ERROR�autoPushzFile: %s, Status: %sz)[%s Cron] Finished checking for %s on %s.zGit report for %s.z%s. [IncScheduler.git:90])rG�listdirr�	gitFolderrrA�get�time�strftimer�save�json�loadsrJrKr�
commitChanges�content�gitPushrNr@r=�	SendEmail�
adminEmailrXrO)
rPr2�	finalTextrRr[�finalPathInside�file�
finalPathConf�gitConfr%�wm�resprUr(r(r)�git�sr�

������? ��zIncScheduler.gitc
CsPdt��}z�ddl}ddl}ddlm}|jjdd�}|�|�	d�d�}ddl
m}d	|��}|d
krL|dkrLdt
|�}t�||j||�WdS|dkrf|d
krfdt
|�}t�||j||�WdS|d
kr�dt
|�}t�||j||�d}	ddl}
|
j|	dd�WdSWdSty�}zt�dt
|��WYd}~dSd}~ww)N�root@%sr��
Administratorr.��pk�/���
ACLManagerz$%s - Disk Usage Warning - CyberPanel�2�<z<Current disk usage at "/" is %s percent. No action required.�Pz�Current disk usage at "/" is %s percent. We recommend clearing log directory by running 

 rm -rf /usr/local/lsws/logs/*. 

 When disk usage go above 80 percent we will automatically run this command.z�Current disk usage at "/" is %s percent. We are going to run below command to free up space, If disk usage is still high, manual action is required by the system administrator. 

 rm -rf /usr/local/lsws/logs/*.zrm -rf /usr/local/lsws/logs/*T)�shellz%[IncScheduler:193:checkDiskUsage] %s.)�socket�gethostname�psutil�math�websiteFunctions.modelsr{rArf�floor�
disk_usage�plogical.aclr��fetchIPr@r=ro�email�
subprocess�callrNrO)�sender_emailr�r�r{�admin�	diskUsager�r[rq�commandr�rUr(r(r)�checkDiskUsage�s:���
 ��zIncScheduler.checkDiskUsagec&Csfd}t|�}|��}|�dd�d}t�d�}d|}tj��D�]}�z�|j|k�rt	�
|j�}z(tj
j�|d|d|d	dd|d
�}	tdd|	d
�}
|
��jddd���Wn�ty�}z}zPddl}t	�d|di�}
|jd|
d�}t	�
|j�d|d<tj
j�|d|d|d	dd|d
�}	tdd|	d
�}
|
��jddd���t	�|�|_|��Wn&ty�}zt|tjdt|�d���WYd}~WYd}~Wq d}~wwWYd}~nd}~wwz|d}Wn,d|j|fdd�}|
��j|dd���}|� d�}||d<t	�|�|_|��Yt�d�d|gd�}|
��j|dd���}|� d�}t|tj!dd���|j"��D]�}z
t#jj |j$d�WnY�q?z�t|tj!d |j$d���t�%|j$|�}|ddk�r�t|tjd!|j$|dfd���W�q?|dd"}|�d#�d$}d%||gd&�}t&|d'd(d)�}z|
��j||dd*���WnSddl}t	�d|di�}
|jd|
d�}t	�
|j�d|d<tj
j�|d|d|d	dd|d
�}	tdd|	d
�}
|
��j||dd*���t	�|�|_|��Yt|tj!d+|j$d���t'�(|�W�q?t�y6}zt|tjd,t|�d���WYd}~�q?d}~wwt|tj!d-d���t)d.�d/}d0|d1�}ddl}|j|t	�|�d�}|�	�d2}|dk�smt*�+�t*j,k�r�z�d}	|
��jd3|j|fdd4|d5���}|� d6g�D]}|� d�}�q�|� d7d�}|du�r�n�qr�z/d}	|
��jd8|dd9|d5���}|� d6g�D�]}|� d:�dd�}t)d;|� d<����|� d<�}|� d�} t�-t.j.�/|d=��0��}!t)d>|!���t1�2d>|!���t��}"z|d?}#t)d@|#���t1�2d@|#���Wn
t)dA�dB}#Y|#dCk�rY|"t3dD�}$t)dE|$���|$|!k�rWt)dE|$�dF|!���t1�2dE|$�dF|!���|
��j4| dG���}%t1�2dH|��q�|#dIk�r||"t3dJ�}$|$|!k�rz|
��j4| dG���}%t1�2dH|��q�|#dKk�r�|"t3dL�}$|$|!k�r�|
��j4| dG���}%t1�2dH|��q�|#dBk�r�|"t3dM�}$|$|!k�r�|
��j4| dG���}%t1�2dH|��q�|� d7d�}|du�r�n�q�Wn t�y�}zt)dN|�t1�2dN|�WYd}~nd}~wwWnt�y
}z
t1�2dO|�WYd}~nd}~wwWq t�y0}zt|tjdPt|�d���WYd}~q d}~wwdS)QNz/etc/cyberpanel/machineIP�
r.rrz&/usr/local/lscp/logs/local_backup_log.�token�
refresh_token�	token_uri�scopes�drive�v3)�credentials�
zfiles(id, name))�pageSize�fieldsz.https://platform.cyberpersons.com/refreshToken)r%�access_token�zNConnection to this account failed. Delete and re-setup this account. Error: %s�rZr`r[�
folderIDIPz%s-%sz"application/vnd.google-apps.folder)�name�mimeType�id)�bodyr�)r�r��parentszStarting backup job..rWz&Local backup creation started for %s..z3[ERROR] Backup failed for %s, error: %s moving on..�.tar.gzr~r<z%s)r�r�zapplication/gzipT)�mimetype�	resumable)r��
media_bodyr�z0Backup for %s successfully sent to Google Drive.z-[Site] Site backup failed, Error message: %s.z
Job Completedz
job com[letedz@https://platform.cyberpersons.com/CyberpanelAdOns/Adonpermissionzbackups-retention)r��IPr`zname='%s-%s'znextPageToken, files(id, name))�q�spacesr��	pageToken�files�
nextPageTokenz'%s' in parentsz+nextPageToken, files(id, name, createdTime)�createdTimezFile from gdrive r�z%Y-%m-%dzFolder creation time on gdrive �FileRetentiontimezRetention time zRetention time not defined.�6m�1d�Qz	New time z, Folder created time )�fileIdzDelete file %s �1w�:	�1mi�'iN�z!An error occurred fetch child: %szjob not completed [ERROR:]..%sz+[Completely] Job failed, Error message: %s.)5rJrK�splitrgrhr	rArB�runTimerjrk�auth�google�oauth2r�rr
r��list�executerN�requests�dumps�post�textrir
rrbr@r��createrfrY�gdrivesites_setrrX�createLocalBackuprrGrM�printr�decideServer�ent�mktime�datetime�strptime�	timetupler=rO�float�delete)&rP�ipFile�f�ipData�	ipAddress�
backupRunTime�
backupLogPath�items�
gDriveDatar�r�rUr��	finalDatar:r��
file_metadatars�folderIDr2�	retValues�completeFileToSend�fileName�media�urlr%�response�Status�
page_token�
mainfolder_id�ab�filename�fileDeleteID�	timestamp�CUrrenttimestamp�
timerrtention�newrwr(r(r)�runGoogleDriveBackups�s�

����������
��

�
��
�
����
��
�������
���



�

�

�

�
�4������
�����z"IncScheduler.runGoogleDriveBackupsc9s

ddlm}ddlm}ddl}tj��D�]l}t�	|j
�}t�	|jj
�}t�
d�}t|d�|ddk�r�|tj|k�r�d|d�d	�|f�d
�}|�|�z1d}	|d}
|d
}|d�tt���|d<d}|�|�}|�|
�dkr�|�d�dkr�td�Wnd}	tt���|d<�|d<Ytjj|d���t||jd|t�
d�fd���|	r�t||jd|d���d}
z|tjdkr�tj��� d�}d}
n|j!��� d�}Wn|j!��� d�}Yd}|D]�}|
r�|j"}n|j"j"}||d
<t�
d�|tj#<d|tj$<t�%|�|_
|��|	�r$|�s$||k�r#d}q�q�|�&|d�}|ddk�rqt||j'd|t�
d�fd���d||f}d}t(|d��)��d �}d!|�*�}|g}d"|d#�+|�|||f}t,�-|||�q�|dd$}d%|�f}|�|�t||jd&|t�
d�fd���q�t�	|j
�}z
|d�r�|d=WnYd'|tj$<t�%|�|_
|��q|tj|k�r�t|tj�d|d�d	�|f�d(}t.�/�}|�0t.�1��t.j2�3|�}z|j4|d)t5|d*�|d+|d,�Wn(t6�y!}zt||jd-t|���d���tt|��WYd}~qd}~wwd.}zd/|d0�d1�}t,�7|�|�8|�d2}|�8|�Wnt6�y\}zt,�7d3t|����WYd}~nd}~wwd4���}z�|j8|d5d6�\}} }!| j9�:�}"|!�)��;d7�}#t|#�|"dk�s�d8|#�<�v�s�d9|#�<�v�r�d:}t,�7d;|d)�d<��zC|�=�}$��>d	��?d	�}%d=}&|%D],}'|&�r�|&d	|'n|'}&z|$�@|&�W�q�tA�y�z|$�B|&�WnYY�q�w|$�C�Wn2t6�y�}zt,�7d>t|����WYd}~nd}~ww|#�rt||jd?|#�>���d���Wq	Wn�t6�y�}ztd:}t,�7d@t|��d<��zC|�=�}$��>d	��?d	�}%d=}&|%D],}'|&�rF|&d	|'n|'}&z|$�@|&�W�q;tA�ygz|$�B|&�WnYY�q;w|$�C�Wnt6�y�}zt,�7d>t|����WYd}~nd}~wwWYd}~nd}~wwd}	tt���|d<�|d<tjj|d���t||jd|t�
d�fd���|	�r�t||jd|d���d}
z|tjdk�r�tj��� d�}d}
n|j!��� d�}Wn|j!��� d�}Yd}|D�]O}|
�r|j"}n|j"j"}z	tjjD|dA�WnY�q�||d
<t�
d�|tj#<d|tj$<t�%|�|_
|��|	�rG|�sG||k�rEd}�q��q�|�&|d�}|ddk�r�t||j'd|t�
d�fd���d||f}d}t(|d��)��d �}d!|�*�}|g}dB|d#�+|�|||f}t,�-|||��q�|dd$}dC|d*dD|dE|d+dF|d)dG�}z|�|�}|�r�|dk�r�tEdH��Wnft,�7dI|d)�dJ��z'|�=�}$tjF�+�tjF�G|��}(|$�H||(�|$�C�t,�7dK|�dL|(�dM��Wn/t6�y-}z"t,�7dNt|����t||j'dO|t|�fd���WYd}~Y�q�d}~wwYzt�I|�WnYt||jd&|t�
d�fd����q�t�	|j
�}z
|d�r]|d=WnYd'|tj$<t�%|�|_
|��ddPlJmK})�z|)jjD|d+dQ�}*ddRlLmM}+|D]�}ddSlNmN},mO}-|,�P�|-ddT��
dU�}.tdV|.���dW��dX�}g}/z|j8|d5d6�\}} }!| �)��;��Q�}/WnGt,�7dY|d)�dZ��z|�=�}$|$�R��}0�fd[d\�|0D�}/|$�C�Wnt6�y
}zt,�7d]t|����g}/WYd}~nd}~wwYtjF�S|jT��rt,�7t|/��zYd}1|/D]}2|2�|j"��r5td^|j"���d}1n�q |1�rr	ddlU}3d_}4|*jVd`|j"�da|+�W��db�dc|j"�dd|+�W��de�|*jX|+�W�df�}5dgdhi}6t�%|5�}7|3jY|4|6|7di�}8W�q�Y�q�WqYqqdS)jNrrrrrP�localr\rHr~zmkdir -p %sr.�pidr2�	finalPathzps auxr<zIncScheduler.py�rZzStarting %s backup on %s..r�z.Will continue old killed job starting from %s.rBrX�domain__domainz%d %b %Y, %I:%M %pz	Running..z	/dev/nullzBackup failed for %s on %s.z%Automatic backup failed for %s on %s.�/home/cyberpanel/adminEmailr:r�ryzCFrom: %s
To: %s
Subject: %s

Automatic backup failed for %s on %s.
�, r�zmv %s %szBackup completed for %s on %s.zNot runningz/root/.ssh/cyberpanel�ip�port�username)r�r��pkeyzFailed to make sftp connection Tzfind cpbackups -type f -mtime +�	retentionz -exec rm -f {} \;z%find cpbackups -type d -empty -deletez$Failed to delete old backups, Error �	mkdir -p r�)�timeoutzutf-8znot allowedzchannel closedFzSSH command failed on z , falling back to pure SFTP moderVz%Failed to create directory via SFTP: z0Error while creating directory on remote server zSSH command failed: rWzBFrom: %s
To: %s
Subject: %s
Automatic backup failed for %s on %s.
z#scp -o StrictHostKeyChecking=no -P z -i /root/.ssh/cyberpanel � �@z:%szSCP failed, trying SFTPzSCP failed for z, falling back to SFTP transferzSuccessfully transferred z to z	 via SFTPz$Failed to transfer backup via SFTP: z!Backup transfer failed for %s: %s)�OneClickBackups)�sftpUserr�)r��	timedelta)�daysz%m.%d.%Yzdate of yesterday zls -d z/*zSSH ls command failed for z, trying SFTP listdircsg|]	}��d|���qS)r~r()�.0r��r�r(r)�
<listcomp>�sz3IncScheduler.startNormalBackups.<locals>.<listcomp>z#Failed to list directory via SFTP: z"site in backup, no need to notify z;http://platform.cyberpersons.com/Billing/BackupFailedNotifyzFailed to backup z on �.z#Hi, 

 Failed to create backup for z on on zU. 

 Please contact our support team at: http://platform.cyberpersons.com

Thank you.)�sub�subjectr[r�serverIPzContent-Typezapplication/json)�headersr%)Z�plogical.processUtilitiesr�plogical.backupSchedulerr�rrArBrjrk�configrZrgrhr�rr�rstrip�executionerr@rG�getpid�outputExecutionerrL�quitr�filterr�rYrirr�order_by�normalbackupsites_setrXr rr�r�rbrJrKr��joinr=ro�paramiko�	SSHClient�set_missing_host_key_policy�
AutoAddPolicy�RSAKey�from_private_key_file�connect�intrNrO�exec_command�channel�recv_exit_status�decode�lower�	open_sftp�stripr��stat�FileNotFoundError�mkdir�closerf�	ExceptionrH�basename�putrM�IncBackups.modelsrr�r�r�r�now�
splitlinesrdrI�	debugPathr��subscriptionr�rr�)9rPrrr��	backupjob�	jobConfig�destinationConfig�currentTimer��oldJobContinuer��stuckDomainrT�actualDomain�websites�doit�siterXr��SUBJECT�adminEmailPathrp�sender�TOr[�
backupPath�private_key_path�ssh�private_keyrU�ssh_commands_supported�stdin�stdout�stderr�exit_status�
error_message�sftp�
path_parts�current_path�part�remote_pathr�ocbr�r�r�	Yesterday�directoriesr��
startCheck�	directoryr�r��payloadr�dataRetr�r(rr)�startNormalBackups�s�



�

�����


���

��
�
�&���

��

&������������/
�����



������������
�����
��

�

�����

��L����zIncScheduler.startNormalBackupscCs~d}|d}t|d���}|d�d�d�d��d�}|d�d�d�d��d�}|d�d�d�d��d�}|||fS)	Nz/home/cyberpanel/.awsz/credentialsr:r.r��r�r)rJ�	readlinesr�r')rHr�r%�aws_access_key_id�aws_secret_access_key�regionr(r(r)�fetchAWSKeys�s
zIncScheduler.fetchAWSKeysc
CsH�zotjj|d�}|j�d��d�}t�d�}tddddd�}t�	�\}}}t��}d	|j
}	|�d
�dkr@tj
d|||d
�}
ntj
d||d�}
|
�|j�}|j��D]#}t||j���}
|
|	krvt|dt�d�d|jd���|��qS|�d
�dkr�tjd|||d
�}ntjd||d�}t|dt�d�dd���t�|j�}|j��D]�}ddlm}dttdd��}i}|j |d<||d<t!|d�|d<t!|d�|d<t!|d�|d<d|d<d|d <d!|d"<d#|j |j d$t�d%�|d&<||�}|�"�\}
}t#|d'��$�}|
d(k�rE|j%d)|j d)|�&d)�d}|j'||||d*�d+|}t(�)|�t|dt�d�d,|j d-d���q�t|d.t�d�d/|j d0|d���q�||_*|��t|dt�d�d1d���WdSt+�y�}z&t,�-t|�d2�tjj|d�}t|t�d�d.t|�d3���WYd}~dSd}~ww)4N)r�r�r�z%d:%m:%Yidr�T)�multipart_threshold�max_concurrency�multipart_chunksize�use_threadsr��httpr<�s3)r[r\�endpoint_url)r[r\rY�%b %d %Y, %H:%M:%S�AFile %s expired and deleted according to your retention settings.�rZ�level�	timeStamprUzStarting backup process..r)�backupUtilitiesr/r0r1rX�tempStatusPathr%�emails�	databases�0r�r��None�destinationDomainz#/home/cyberpanel/backups/%s/backup-�-rrHr:r.r~)�Configzrm -f zBackup successful for rrbzBackup failed for z	. Error: zBackup Process Finished.z [S3Backups.runBackupPlan])rZrjrirU).rrArf�bucketr'rgrhrrr^r�rL�boto3�resource�BucketrBr��
last_modifiedr�r�keyrir��clientrjrkr�websitesinplan_set�plogical.backupUtilitiesrkr@rrXr �CloudBackupsrJrKr�r��upload_filerrr rNr=rO)�planName�plan�
bucketNamer�rr[r\r]�ts�retentionSecondsrdrtrsrTrz�
PlanConfigr�rkrlr'�bur��finalResultryr�rUr(r(r)�forceRunAWSBackup�s�
�
��������
����
"�
���,��zIncScheduler.forceRunAWSBackupc
Csvztj��D]}|jdkr|krnqt�|j�qWdSty:}zt�	t
|�d�WYd}~dSd}~ww)N�Dailyz [S3Backups.runAWSBackups])rrArBr+rr�r�rNr=rOr@)r+r�rUr(r(r)�
runAWSBackupsRs�� ��zIncScheduler.runAWSBackupscCs6tj��D]�}zvzt�|j�}Wni}Y|j��}|D]+}|j��D]#}d|j|j	�
d�df}t�|�|_
|��td|j	|j
f�q%qt�d|j|jj�\|d<|d<ddlm}|�|jt|jj��\|d	<|d
<t�|�|_|��Wqty�}zt�dt|��WYd}~qd}~wwdS)Nz/home/vmail/%s/%srrzDisk Usage of %s is %sz/home/�	DiskUsage�DiskUsagePercentage)�vhost�bwInMB�bwUsagez%%s. [CalculateAndUpdateDiskUsage:753])rrArBrjrkr�domains_set�
eusers_setrXr�r�r�getDiskUsageofPathr�rir��getDiskUsage�package�	diskSpace�plogical.vhostr��findDomainBWr �	bandwidthr�rNr=rOr@)r2r�eDomains�eDomainr��	emailPathr�rUr(r(r)r,[s4
��"���z(IncScheduler.CalculateAndUpdateDiskUsagecCsddlm}|j��D]s}zVzt�|j�}Wni}Y|ddkr/d|d}t�|�n|ddkr@d|d}t�|�|d	d
krQd|d}t�|�|dd
krbd
|d}t�|�Wqt	y~}zt
�dt|��WYd}~qd}~wwdS)Nr)�
WPDeployments�updateszMinor and Security Updatesz?wp core update --minor --allow-root --path=/home/%s/public_html�
domainNamezAll (minor and major)z7wp core update --allow-root --path=/home/%s/public_html�
pluginUpdates�EnabledzGwp plugin update --all --minor --allow-root --path=/home/%s/public_html�themeUpdateszFwp theme update --all --minor --allow-root --path=/home/%s/public_htmlz%s. [WPUpdates:767])
�cloudAPI.modelsr�rArBrjrkrrrrNr=rOr@)r��wprr�rUr(r(r)�	WPUpdates�s:
�
�
����zIncScheduler.WPUpdatescCs*
�z�td�ddlm}m}m}ddlm}ddl}ddl}ddl	m
}|j��D�]�}td|j
�z%|�|j�}	|	d}
td|j
|
f�|
d	krNd
}n	|
dkrUd}nd
}Wntyr}ztdt|��WYd}~q)d}~ww�z]|jj|d�}
tdt|
��|
D�]H}�z@|j}|jj|d�}td|j�|jj}|jj|d�}|j}t|���}|j|k�rHi}|j|d<|j|d<||d<|jj|d<|j|d<dttdd��|d<|d|�}|� �\}}}|dk�rF|}|jjdk�rt!�"||j�d|��}t#�$|�|jj|j%d�}|��|_|�&��n�|jjd k�rFt!�'||j||j%�d|��}t#�$|�|jj|j%d�}|��|_|�&��n�|j|k�r�i}|j|d<|j|d<||d<|jj|d<|j|d<dttdd��|d<|d|�}|� �\}}}|dk�r�|}|jjdk�r�t!�"||j�d|��}t#�$|�|jj|j%d�}|��|_|�&��n|jjd k�r�t!�'||j||j%�d|��}t#�$|�|jj|j%d�}|��|_|�&��n�|j|k�rvi}|j|d<|j|d<||d<d|d<|j|d<dttdd��|d<|d|�}|� �\}}}|dk�rt|}|jjdk�rHt!�"||j�d|��}t#�$|�|jj|j%d�}|��|_|�&��n�|jjd k�rtt!�'||j||j%�d|��}t#�$|�|jj|j%d�}|��|_|�&��nS|j|k�ri}|j|d<|j|d<||d<d|d<|j|d<dttdd��|d<|d|�}|� �\}}}|dk�r
|}|jjdk�r�t!�"||j�d|��}t#�$|�|jj|j%d�}|��|_|�&��n�|jjd k�r
t!�'||j||j%�d|��}t#�$|�|jj|j%d�}|��|_|�&��n�|j|k�r�i}|j|d<|j|d<||d<d|d<|j|d<dttdd��|d<|d|�}|� �\}}}|dk�r�|}|jjdk�rtt!�"||j�d|��}t#�$|�|jj|j%d�}|��|_|�&��nU|jjd k�r�t!�'||j||j%�d|��}t#�$|�|jj|j%d�}|��|_|�&��n'|j|k�r6i}|j|d<|j|d<||d<d|d<|j|d<dttdd��|d<|d|�}|� �\}}}|dk�r5|}|jjdk�r	t!�"||j�d|��}t#�$|�|jj|j%d�}|��|_|�&�n�|jjd k�r5t!�'||j||j%�d|��}t#�$|�|jj|j%d�}|��|_|�&�n�|j|k�r�i}|j|d<|j|d<||d<d|d<|j|d<dttdd��|d<|d|�}|� �\}}}|dk�r�|}|jjdk�r�t!�"||j�d|��}t#�$|�|jj|j%d�}|��|_|�&�n,|jjd k�r�t!�'||j||j%�d|��}t#�$|�|jj|j%d�}|��|_|�&�Wq�Yq�Wq)t�y�}ztd!t|��WYd}~q)d}~wwWdSt�y}ztd"t|��t(�)d#t|��WYd}~dSd}~ww)$Nz&....start remote backup...............r)�RemoteBackupSchedule�RemoteBackupsites�WPSitesrz)�ApplicationInstallerz,....start remote backup........site.......%s�
BackupTypezA....start remote backup........site.......%s.. and bakuptype...%sz
Only DataBase�3zOnly Website�2�1z....backup config type Error.%sr�zstore site id.....%sr|zsite name.....%s�adminID�WPid�
Backuptype�BackupDestination�SFTPIDr/r0r1rl�WPCreateBackupr.�SFTPzrm -r �S3zError in Sites:%szError: [RemoteBackup]: %sz%s. [RemoteBackup])*r�r�r�r�r��loginSystem.modelsr{rjrg�plogical.applicationInstallerr�rArB�NamerkrrNr@r�WPsitesrf�titlerZ�admin_id�lastrunr��timeintervelr}�RemoteBackupConfig�
configtype�RemoteBackupConfig_idrr�r�SendTORemoterrr�ri�
SendToS3Cloudr=rO)r$r�r�r�r{rjrgr�r�configbakup�
backuptyper�rU�allRemoteBackupsiteobj�i�backupsiteID�wpsite�AdminID�Admin�Lastrun�Currenttimer'�
backgroundr`�backupIDr�r��objr(r(r)�RemoteBackup�s���








�


�







�


�







�


�







�


�







�


�








�


�








�


���o����� ��zIncScheduler.RemoteBackupc

Cs2ddl}ddlm}zj|jj|d�}|�|j�}|d}|d}|d}|d}	t��}
|
�	t�
��|
j|||d�|
��}|
�
d	|	���tj�tj�rbt�d
|�d|	�d|�d�d
�d��|�||	�d|�d�d
���WdSty�}ztdt|��t�dt|��WYd}~dSd}~ww)Nr)r�r|�Hostname�Username�Password�Path)r��passwordr�z
Filename: z, Path r~r<z. [SendTORemote]z%s. [SendTORemote])rjr�r�rArfrkrrrrrrr&r!rGrHrIrr2r=rOr�r.rNr�r@)
�FileName�RemoteBackupIDrjr��RemoteBackupOBJr�HostNamer�r�r�rDrLrUr(r(r)r��s,(& ��zIncScheduler.SendTORemotec+
Cs,ddl}ddl}ddl}ddlm}m}m}	ddlm}
�zSt	d�|j
j|d�}|�|j
�}|d}
|j
j|d�}|�|j
�}|d}|dkrM|d}n
|d	krTd
}n|dkrZd}|d
}|d}|j��}|jd|||dd�}|	j
j|d�}|�|j
�}|d}|d}t	d|�z|j|||d�}t	d|�Wnty�}zt	d|�WYd}~nd}~wwz�|jd|||d�}|}|}|�|�jj|d�}i} |D]}!|!��}"t	d|"�d��|"�d�| d<q�tj�|�}#t|#�d}$||d<| d|d<||d<|$|d<|�|�|_
|��d d!d"d#d$�}%|%|j}&|�|�}'|��}(|'j
��D]%})t|(|)j� ��}*|*|&k�rNt!t"d%|�#d&�d'|)j$d(���|)�%��q*WWdSt�yp}zt	d)t&|��WYd}~WdSd}~wwt�y�}zt	d*t&|��t'�(d*t&|��WYd}~dSd}~ww)+Nr)r��
WPSitesBackupr�zUPloading to S3r|�	WebDomain�Provider�	Backblaze�EndUrl�Amazonz"https://s3.us-east-1.amazonaws.com�Wasabizhttps://s3.wasabisys.com�	AccessKey�	SecertKeyrdF)rer[r\�verify�
BucketNamer�zuploadfilename....%s)�Filenamerw�Keyzres of Uploading...: %szError in Uploading...: %s)rer[r\)�PrefixzVersionId---%s:�	VersionId�backupVersionIdg�@�uploadfilename�Uplaodingfilesizei��r�i��io ()�3 Days�1 Weekz3 Weeksz1 MonthrYrfrgrhzVersion ID Error: %sz%s. [SendToS3Cloud]))rurjrgr�r�r�r��plogical.randomPassword�randomPasswordr�rArfrkr�session�Sessionrzr~rNrvrw�object_versionsrrGrH�getsizer�r�ri�
fileretentionrBrxr�rr�rhryr�r@r=rO)+r��RemoteBackupCofigIDr��
scheduleIDrurjrgr�r�r�r��	Backupobj�backupConfig�
websitedomainr�r�provider�EndURlr�r�r�rz�Scheduleobj�Scheduleconfigr�r��resrUrdrtry�versionsr%�versionr�r��filesize�retention_conversionr��
bucket_objr�rsrTr(r(r)r��s�

�����


���� �� ��zIncScheduler.SendToS3CloudcCs��zGddlm}ddlm}ddl}ddl}tj�d��rC|j	�
�D�]"}d|j��}tj�|��rBd|��}t�
|�}tt|��|�t�
|��d��}	|	dD]�}
z�|
d	|k�r	i}d
|d<|j|d<|j|d
<d|d<|
d|d<d|
vr}|
dnd|d<d|
vr�|
dnd|d<d|
vr�|
dnd|d<ddlm}||�}
|
��}t|�|dkr�d|j|�d�f}d}t|d����d�}dt��}t�
d|
j���}|g}d|�d�|d �|�||j|�d�f}t�|||�n|�d�|
d!<|d"k�r	|
�d#|
d$���WqQt�y.}ztd%t |��t�!d&t |��WYd}~qQd}~ww|�"|	�}t|d'�}|�#|�|�$�q"WdSWdSt�ym}ztd%t |��t�!d&t |��WYd}~dSd}~ww)(Nr)rrzz/home/cyberpanel/v2backupsz/home/cyberpanel/v2backups/zcat r��	schedulesr�InitiateBackupr$r2rXz/home/backup�BasePath�repo�BackendNamer5F�
BackupDatar7�BackupEmailsr6�BackupDatabase)�CPBackupsV2z'Automatic Backupv2 failed for %s on %s.rr�r:ryzDFrom: %s
To: %s
Subject: %s
Automatic Backupv2 failed for %s on %s.
r�r r�z
--keep-daily r�zError: [v2Backups]: %sz%s. [v2Backups]�w)%r�rr�r{rjrgrGrHrIrArBrXrrr��reprrkr�plogical.Backupsv2r
rrhrJrKr�r��
StatusFilerr=ro�DeleteSnapshotsrNr@rOr��writer+)r$rr{rjrgr2�finalConfigPathr��	RetResult�BackupConfig�value�
extra_argsr
r��	RetStatusr>r?rpr@�errorrAr[rU�FinalContent�WriteToFiler(r(r)�	v2Backupsos~



��
���


��; ��zIncScheduler.v2Backupsc
Cs�z;ddlm}|jjdd�}zt�|j�}Wni}Yz
|d}|d}Wn
t��}d}Yt	�
|d|�WdStyX}zt�
t|��d��WYd}~dSd}~ww)	Nrrzr.r|�hostname�
skipRDNSCheckz%/home/cyberpanel/onboarding_temp_pathz. [Cron.CheckHostName])r�r{rArfrjrkrr�FetchPostfixHostnamer�OnBoardingHostNamerNr=rOr@)r{r�r�CurrentHostNamerrUr(r(r)�
CheckHostName�s$"��zIncScheduler.CheckHostNameN)�__name__�
__module__�__qualname__r?rergrh�
timeFormatrrrr r#r-�staticmethodr*rxr�r�rXr^r�r�r,r�r�r�r�rr r(r(r(r)r*s\

D
D
&
y
h

r

6
#

2
u
GrcCsbtjdd�}|jddd�|jddd�|��}|jdkr#t��d	S|jd
ksF|jdksF|jdksF|jd
ksF|jdksF|jdksF|jdkrTt�|j�t�|j�d	S|jdkrat�	|j
�d	St��t��|jdkryzt��WnYtdd|ji�}|�
�t�|j�t�|j�t�|j�t��t�|j�t�|j�t��|��dS)NzCyberPanel Installer)�descriptionr$zSpecific a function to call!)�helpz
--planNamezPlan name for AWS!�UpdateDiskUsageForcerz
30 Minutesz1 Hourz6 Hoursz12 Hoursz1 Dayr�r�r��Weeklyr*r+)�argparse�ArgumentParser�add_argument�
parse_argsr$rr,r�rr�rr��
FixMailSSLrFr*r�rxr�rXr�r r)�parser�args�ibr(r(r)�main�s>
F

r2�__main__)?�os.pathrG�sysrrH�append�environ�
setdefault�django�setup�plogical.getSystemInformationr�IncBackups.IncBackupsControlrr/r�randomrr*rjr�rrr	r
�websiteFunctions.websiterrgr��google.oauth2.credentialsr�r�googleapiclient.discoveryr
�googleapiclient.httprrrr�r�rr�boto3.s3.transferr�s3Backups.modelsrrru�plogical.virtualHostUtilitiesr�plogical.mailUtilitiesr�plogical.CyberCPLogFileWriterrr=r
r�	threadingr!r"rr2r!r(r(r(r)�<module>sl12
�