Files
CyberPanel/backup/views.pyc

397 lines
35 KiB
Plaintext
Raw Normal View History

2017-12-14 06:56:27 -05:00
<03>
2018-03-01 16:11:49 +00:00
<EFBFBD> <20>Zc@s<>ddlmZddlmZmZddlmZddlmZddl m
2017-12-14 06:56:27 -05:00
Z
ddl Z ddl m Z mZmZmZddljZdd lmZddlZddlZddljZdd
2018-03-01 16:11:49 +00:00
lmZddlZddlZddlZddl Z dd l!m"Z"dd l#m$Z$dd l%m&Z&ddl'm(Z(m)Z)ddl*m+Z+ddl,m-Z-ddl.m/Z/m0Z0ddl1m/Z2ddl1m3Z3d<00>Z4d<00>Z5d<00>Z6d<00>Z7d<00>Z8d<00>Z9d<00>Z:d<00>Z;d<00>Z<d<00>Z=d<00>Z>d<00>Z?d <00>Z@d!<00>ZAd"<00>ZBd#<00>ZCd$<00>ZDd%<00>ZEd&<00>ZFd'<00>ZGd(<00>ZHd)<00>ZId*<00>ZJd+<00>ZKd,<00>ZLd-<00>ZMdS(.i<><69><EFBFBD><EFBFBD>(tunicode_literals(trendertredirect(t HttpResponsei(tDBUsers(t AdministratorN(tWebsitestBackupstdesttbackupSchedules(t loadLoginPage(trmtree(tversion(tvirtualHostUtilities(trandint(tElementt
SubElement(t ElementTree(tminidom(tDomainstRecords(R(tEUserscCszy[|jd}tjjd|<00>}d}|jdkrCd}nt|di|d6<>SWntk
2017-12-14 06:56:27 -05:00
rutt<00>SXdS(NuuserIDtpkiiiubackup/index.htmlu
viewStatus( tsessionRtobjectstgetttypeRtKeyErrorRR
(trequesttvaltadmint
2018-03-01 16:11:49 +00:00
viewStatus((s"/usr/local/CyberCP/backup/views.pytloadBackupHome!s   c CscyD|jd}y<>tjjd|jd<19>}|jdkr<>tjjdd<00>}tjj|<00>srt |d<00>Sg}d}d|}t
j |<00>}t j |<00>}tj|<00>} x-| D]%}
2017-12-14 06:56:27 -05:00
|
2018-03-01 16:11:49 +00:00
j|<00>r<>|j|
<00>q<>q<>Wt |di|d 6<>Sn
td
<00>SWn6tk
rB} tjjt| <00><00>tt| <00><00>SXWntk
r^tt<00>SXdS( NuuserIDRiu/homeubackupubackup/restore.htmlu.tar.gzu%sudo chown -R cyberpanel:cyberpanel ubackupsu(You should be admin to perform restores.(RRRRRtostpathtjointexistsRtshlextsplitt
subprocesstcalltlistdirtendswithtappendRt BaseExceptiontloggingtCyberCPLogFileWritert writeToFiletstrRRR
( RRRR"t all_filestexttcommandtcmdtrestfilestfilenametmsg((s"/usr/local/CyberCP/backup/views.pyt restoreSite0s0  
2017-12-14 06:56:27 -05:00
  c
Cs<>y<>|jd}y\tjjd|jd<19>}|jdkrwtjj<00>}g}x<>|D]}|j|j<00>qZWn<57>|jdkr|j j<00>}tjj
d|j <00>}g}x|D]}|j|j<00>q<>Wx}|D]6}|j j<00>}x|D]}|j|j<00>q<>Wq<57>Wn<g}tjj
d|<00>}x|D]}|j|j<00>q:Wt |di|d6<>SWn6t k
r<>} tjjt| <00><00>tt| <00><00>SXWntk
2018-03-01 16:11:49 +00:00
r<>tt<00>SXdS( NuuserIDRiitownerRubackup/backup.htmlu websiteList(RRRRRRtallR+tdomaint websites_settfilterRRR,R-R.R/R0RRRR
2017-12-14 06:56:27 -05:00
(
2018-03-01 16:11:49 +00:00
RRRtwebsitest websitesNametitemstadminstwebstwebR8((s"/usr/local/CyberCP/backup/views.pyt
backupSiteVs:       cCs<>y<>|jd}y:|jdkrItj|j<00>}|d}tjjd|<00>}|jj <00>}d}d}x<>|D]<5D>}|j
2017-12-14 06:56:27 -05:00
dkr<>d} nd} i|j d 6|j d
6|j d 6|jd 6| d 6}
|dkr<>|tj|
<00>}d}qu|dtj|
<00>}quW|d}tjidd6dd6|d6<>} t| <00>SWnCtk
r<>} idd6t| <00>d6} tj| <00>} t| <00>SXWn;tk
2018-03-01 16:11:49 +00:00
r<>idd6dd6} tj| <00>} t| <00>SXdS(NuuserIDuPOSTuwebsiteToBeBackedR<u[iuPendingu Completeduidufileudateusizeustatusiu,u]u fetchStatusuNoneu error_messageudatau6Not Logged In, please refresh the page or login again.(RtmethodtjsontloadstbodyRRRt backups_setR;tstatustidtfileNametdatetsizetdumpsRR,R0R(RRtdatat backupDomaintwebsitetbackupst json_datatcheckerRARKtdict
final_jsonR8t final_dic((s"/usr/local/CyberCP/backup/views.pytgetCurrentBackups}sD 
2017-12-14 06:56:27 -05:00
   



  
2018-03-01 16:11:49 +00:00
$ c# Cs<>y`|jdkr_tj|j<00>}|d}tjjd|<00>}tjj d|d<00>}|j
}d|dt j d<00>}tjj ||<00>}t d <00>}t|d
<00>} || _t|d <00>} |j| _t|d <00>} |j
| _|jj<00>}
|jj<00>} t d <00>} xx|
D]p} t d<00>}t|d<00>} | j| _t|d <00>} | j| _t|d<00>} | j| _| j|<00>qW|j| <00>t d<00>}x<>| D]<5D>} tjjd| j<00>}t d<00>}t|d<00>} | j| _t|d<00>} | j| _t|d<00>} |j| _|j|<00>q<>W|j|<00>y<>t d<00>}tjjd|<00>}tjjd|j<00>}x<>|D]<5D>} t d<00>}t|d<00>} | j| _t|d<00>} | j| _t|d<00>} | j | _t|d<00>} t!| j"<00>| _|j|<00>q<>W|j|<00>Wn)t#k
r]}t$j%j&t!|<00><00>nXy<58>t d<00>}t'jjd|<00>}|j(j<00>}x]|D]U} t d<00>}t|d <00>} | j)| _t|d<00>} | j| _|j|<00>q<>W|j|<00>Wn)t#k
r*}t$j%j&t!|<00><00>nXd!<00>}tjj dd"t!t*d#d$<00><00>d%<17>}||<00>j+d&d'<00>}t,|d(<00>}|j-|<00>|j.<00>d)t/j0d*}|d+|d,|d-|d.|}t1j2t3j4|<00><00>t5d/|d0|d1t j d<00>d2d3d4d3<00>} | j6<00>t j7d5<00>tj8id6d76d8d96|d:6<>}!t9|!<00>SWnCt#k
r<>}id3d76t!|<00>d96}"tj8|"<00>}!t9|!<00>SXdS(;NuPOSTuwebsiteToBeBackedR<u/homeubackup/ubackup-u-u%I-%M-%S-%a-%b-%YumetaFileu masterDomainu phpSelectionu externalAppu ChildDomainsudomainupathu DatabasestuserudatabaseudbNameudbUserupasswordu
dnsrecordstnamet domain_idu dnsrecordutypeunameucontentupriorityuemailsu emailAccountuemailcSs1tj|d<00>}tj|<00>}|jdd<00>S(uDReturn a pretty-printed XML string for the Element.
uutf-8tindentu (RttostringRt parseStringt toprettyxml(telemt rough_stringtreparsed((s"/usr/local/CyberCP/backup/views.pytprettify4su
cyberpaneli<6C>i'u.xmluasciiuignoreuwu sudo python u/plogical/backupUtilities.pyu( submitBackupCreation --tempStoragePath u --backupName u --backupPath u --metaPath RSRMRNROiRKiiu
metaStatusuNoneu error_messageu tempStorage(:RFRGRHRIRRRR!R"R#t externalAppttimetstrftimeRRttextt phpSelectiontchilddomains_setR;t databases_setR<R+RtdbUsertdbNametpasswordRRR>RLRR\tcontentR0tprioR,R-R.R/teDomainst
eusers_settemailRtencodetopentwritetcloseR t
cyberPanelR'tPopenR%R&RtsavetsleepRPR(#RRQRRRSt
2017-12-14 06:56:27 -05:00
backupPatht
domainUsert
2018-03-01 16:11:49 +00:00
backupNamettempStoragePatht metaFileXMLtchildt childDomainst databasestchildDomainsXMLRAtchildDomainXMLt databasesXMLtdbusert databaseXMLt dnsRecordsXMLR<t
dnsRecordst dnsRecordXMLR8temailRecordsXMLteDomaint emailAccountstemailRecordXMLRetmetaPatht xmlprettytmetaFiletexecPatht newBackupRXRY((s"/usr/local/CyberCP/backup/views.pytsubmitBackupCreation<6F>s<>
                               + 
&!
 $c Cs<>y<>y-|jdkr/tj|j<00>}|d}tjjd|d<00>}y>tjjd|d<00>}d|}tjt j
|<00><00>}Wn d}nXtjj |<00>r<>d|}tjt j
|<00><00>}|j d<00>d kr<>d
|}tj t j
|<00><00>tjjd |<00>}d |_yMttttjjd |d|d<17><00>d<15><00>d|_|j<00>WnBtttjjd |d|d<17><00><00>|_|j<00>nXtjid d6dd6|d6d d6|d6<>}t|<00>S|j d<00>d kr<>yKd
|}t j
|<00>} tj | <00>}
tjjd |<00>}|j<00>Wn-tk
r{} tjjt| <00>d<17>nXtjid d6|d6dd6|d6d d6<>}t|<00>Stjid d6dd6|d6|d6dd6<>}t|<00>Sq/tjidd6dd6dd6dd6<>}t|<00>SnWn]tk
r<>} idd6t| <00>d6} tj| <00>}tjjt| <00>d<17>t|<00>SXWnUtk
r<>idd6dd6} tj| <00>}tjjt| <00>d<17>t|<00>SXdS(NuPOSTuwebsiteToBeBackedu/homeu backup/statusubackup/backupFileNameu sudo cat u
Fetching..u Completedi<64><69><EFBFBD><EFBFBD>u sudo rm -f RMiu/home/u/backup/u.tar.gzg<00>@uMBu backupStatusuNoneu error_messageustatusuabortufileNameu[5009]u [backupStatus]iu6Not Logged In, please refresh the page or login again.g0A( RFRGRHRIR!R"R#R't check_outputR%R&R$tfindR(RRRRKR0tinttfloattgetsizeROR{RPRtdeleteR,R-R.R/R( RRQRRRKtbackupFileNamePathR3RMtbackupObRXR4R5R8RY((s"/usr/local/CyberCP/backup/views.pyt backupStatusYsl

2017-12-14 06:56:27 -05:00



2018-03-01 16:11:49 +00:00
 ?12
2017-12-14 06:56:27 -05:00

2
, + c
Cs<>yN|jd}y<>|jdkrtj|j<00>}|d}|d}dtjd}|d|d|}tjt j
|<00><00>y#t j j d |<00>}|j<00>Wn-tk
r<>}tjjt|<00>d
<17>nXtjid d 6d d6dd6<>}t|<00>SWnCtk
rL}idd 6t|<00>d6} tj| <00>}t|<00>SXWn;tk
2018-03-01 16:11:49 +00:00
r<>idd 6dd6} tj| <00>}t|<00>SXdS(NuuserIDuPOSTubackupCancellationDomainufileNameu sudo python u/plogical/backupUtilities.pyu1 cancelBackupCreation --backupCancellationDomain u --fileName RMu [cancelBackupCreation]iu abortStatusuNoneu error_messageiustatusu6Not Logged In, please refresh the page or login again.(RRFRGRHRIR RyR'R(R%R&RRRR<>R,R-R.R/R0RPRR(
RRRQtbackupCancellationDomainRMR<>R<>R8RXRY((s"/usr/local/CyberCP/backup/views.pytcancelBackupCreation<6F>s2 
2017-12-14 06:56:27 -05:00

2018-03-01 16:11:49 +00:00
$ c Csby |jd}y<>|jdkr<>tj|j<00>}|d}tjjd|<00>}|jj }d|d|j
2017-12-14 06:56:27 -05:00
d}d|}t j |<00>}t j|<00>} |j<00>tjid d
6d d 6d d6<>}
t|
<00>SWnCtk
r} id d
6t| <00>d 6} tj| <00>}
t|
<00>SXWn;tk
r]id d
6dd 6} tj| <00>}
t|
2018-03-01 16:11:49 +00:00
<00>SXdS(NuuserIDuPOSTubackupIDRLu/home/u/backup/u.tar.gzu sudo rm -f iu deleteStatusuNoneu error_messageiustatusu6Not Logged In, please refresh the page or login again.(RRFRGRHRIRRRRSR<RMR%R&R'R(R<>RPRR,R0R( RRRQtbackupIDtbackupt
domainNameR"R3R4R5RXR8RY((s"/usr/local/CyberCP/backup/views.pyt deleteBackup<75>s. 
2017-12-14 06:56:27 -05:00
 

2018-03-01 16:11:49 +00:00
$ c Csy<>|jdkr<>tj|j<00>}|d}d|}tjj|<00>sW|d}nd}dtjd}|d|d |}t j
t j |<00><00>t jd
<00>id d 6d d6}tj|<00>}t|<00>SWnCtk
r}idd 6t|<00>d6}tj|<00>}t|<00>SXdS(NuPOSTu
backupFileu /home/backup/udiruCyberPanelRestoreu sudo python u/plogical/backupUtilities.pyu submitRestore --backupFile u --dir iiu restoreStatusuNoneu error_messagei(RFRGRHRIR!R"R$R RyR'RzR%R&RgR|RPRR,R0( RRQt
backupFilet originalFiletdirR<72>RYRXR8((s"/usr/local/CyberCP/backup/views.pyt submitRestore<72>s&
2017-12-14 06:56:27 -05:00

2018-03-01 16:11:49 +00:00
  c Cs<>y<>|jdkr<>tj|j<00>}|djd<00>}tjjdd|d<19>}tjj|<00>r<>tjjdd|<00>}n"|d}dt |<00>d|}tjj|<00>rqyOd |d
}t
j t j |<00><00>}|jd <00>d krNd |}t
jt j |<00><00>tjidd6dd6|d6dd6dd6<>}t|<00>S|jd<00>d kr<>d |}t
jt j |<00><00>tjidd6dd6|d6dd6dd6dd6<>}t|<00>Stjidd6dd6|d6dd6dd6<>}t|<00>SWq<57>tk
rm} tjjt | <00><00>d}tjidd6dd6|d6dd6dd6<>}t|<00>SXq<58>tjidd6dd6dd6dd6dd6<>}t|<00>SnWnCtk
r<>} idd6t | <00>d6}
tj|
<00>}t|<00>SXdS(NuPOSTu
backupFileu.tar.gzu/homeubackupudiru/home/backup/transfer-u/u sudo cat u/statusuDonei<65><69><EFBFBD><EFBFBD>u sudo rm -rf iu restoreStatusuNoneu error_messageustatusuabortu Completedurunningu[5009]iualreadyRunninguErroru Running..u Just Startedu OK To RunuHalted(RFRGRHRItstripR!R"R#R$R0R'R<>R%R&R<>R(RPRR,R-R.R/( RRQR<>R"R<>R<>RKR3RXR8RY((s"/usr/local/CyberCP/backup/views.pyt restoreStatussL

2017-12-14 06:56:27 -05:00
,

"
222cCsnyO|jd}tjjd|<00>}|jdkrDt|di<00>Std<00>SWntk
2018-03-01 16:11:49 +00:00
ritt <00>SXdS(NuuserIDRiubackup/backupDestinations.htmlu/You should be admin to add backup destinations.(
RRRRRRRRRR
(RRR((s"/usr/local/CyberCP/backup/views.pytbackupDestinationsJs  c Cs<>y<>yM|jdkrOtjj}tj|j<00>}|d}|d}d}y|d}WnnXtjj <00>j
2017-12-14 06:56:27 -05:00
<00>dkr<>idd6d d
6}tj |<00>}t |<00>SyFtjj d |<00>}idd6d d
6}tj |<00>}t |<00>SWqOtjj|||<00>} | dd krtjj||<00>y\t|d<00>}
|
j|d<17>|
j|dd<17>|
j<00>td |<00>} | j<00>WnWt|d<00>}
|
j|d<17>|
jd<00>|
j<00>td |<00>} | j<00>nXid d6dd
6}tj |<00>}t |<00>Sidd6| d d
6}tj |<00>}t |<00>SqOXnWnCtk
r<>} idd6t| <00>d
6}tj |<00>}t |<00>SXWnAtk
r<>idd6t| <00>d
6}tj |<00>}t |<00>SXdS(NuPOSTu IPAddressupasswordu22u backupSSHPortiiu
destStatusu1Currently only one remote destination is allowed.u error_messagetdestLocu This destination already exists.iuwu
uNoneu22
2018-03-01 16:11:49 +00:00
(RFt
backupUtiltbackupUtilitiestdestinationsPathRGRHRIRRR;tcountRPRRt setupSSHKeystcreateBackupDirRvt
writelinesRxR{R,R0R( Rt destinationsRQt ipAddressRotportRYRXtdt setupKeysR/tnewDestR8((s"/usr/local/CyberCP/backup/views.pytsubmitDestinationCreationWsj 
2017-12-14 06:56:27 -05:00

2018-03-01 16:11:49 +00:00


2017-12-14 06:56:27 -05:00
 

 c
Cs~y<|jd}y<>|jdkr<>tjj<00>}d}d}x||D]t}|jdkr_qDni|jd6|jd6}|dkr<>|tj|<00>}d}qD|d tj|<00>}qDW|d
}tjidd 6d d 6|d6<>}t |<00>SWnCt
k
r:}idd 6t |<00>d 6} tj| <00>}t |<00>SXWn;t k
2018-03-01 16:11:49 +00:00
ryidd 6dd 6} tj| <00>}t |<00>SXdS(NuuserIDuPOSTu[iuHomeuiduipiu,u]u fetchStatusuNoneu error_messageudatau6Not Logged In, please refresh the page or login again.( RRFRRR;R<>RLRGRPRR,R0R(
RRtrecordsRURVRARWRXR8RY((s"/usr/local/CyberCP/backup/views.pytgetCurrentBackupDestinations<6E>s6      
2017-12-14 06:56:27 -05:00
$ cCsDy<>y<>|jdkr<>tj|j<00>}|d}tjj|<00>}|ddkr<>idd6dd6}tj|<00>}t|<00>Sidd6|dd6}tj|<00>}t|<00>SnWnCt k
r<>}idd6t
|<00>d6}tj|<00>}t|<00>SXWnAt k
r?idd6t
|<00>d6}tj|<00>}t|<00>SXdS(NuPOSTu IPAddressiiu
2018-03-01 16:11:49 +00:00
connStatusuNoneu error_message( RFRGRHRIR<>R<>tcheckConnectionRPRR,R0R(RRQR<>tcheckConRYRXR8((s"/usr/local/CyberCP/backup/views.pytgetConnectionStatus<75>s*
2017-12-14 06:56:27 -05:00

 c Cs<>y<>y_|jdkratj|j<00>}|d}tjjd|<00>}|j<00>d}|d}t|d<00>j <00>}t|d<00>}x6|D].}|j
|<00>dkr<>q<>q<>|j |<00>q<>W|j <00>d}t|d<00>j <00>}t|d <00>}x6|D].}|j
d
<00>dkrq<>q<>|j |<00>q<>W|j <00>id d 6d d6}tj |<00>} t| <00>SWnCtk
r<>}
id d 6t|
<00>d6}tj |<00>} t| <00>SXWnAtk
r<>id d 6t|
2018-03-01 16:11:49 +00:00
<00>d6}tj |<00>} t| <00>SXdS(NuPOSTu IPAddressR<73>u/usr/local/CyberCP/backup/u destinationsuri<72><69><EFBFBD><EFBFBD>u /etc/crontabuwubackupSchedule.pyiu delStatusuNoneu error_message(RFRGRHRIRRRR<>Rvt readlinesR<73>R<>RxRPRR,R0R( RRQR<>tdelDestR"R<>R/RARYRXR8((s"/usr/local/CyberCP/backup/views.pytdeleteDestination<6F>sF
2017-12-14 06:56:27 -05:00


 
 
 cCs<>y<>|jd}tjjd|<00>}|jdkr<>tjj<00>j<00>dkryytdd<00>}|j<00>WqyqyXntjj<00>}g}x|D]}|j |j
<00>q<>Wt |di|d6<>St d<00>SWnt k
2018-03-01 16:11:49 +00:00
r<>tt<00>SXdS( NuuserIDRiR<>uHomeubackup/backupSchedule.htmlu destinationsu(You should be admin to schedule backups.(RRRRRRR;R<>R{R+R<>RRRRR
(RRRthomeDestRTR<>RA((s"/usr/local/CyberCP/backup/views.pytscheduleBackups$   c
2017-12-14 06:56:27 -05:00
Csvy4|jd}y<>|jdkr<>tjj<00>}d}d}xt|D]l}i|jd6|jjd6|jd6}|dkr<>|t j
|<00>}d}qD|d t j
|<00>}qDW|d
}t j
idd 6d d 6|d6<>}t |<00>SWnCt k
r2}idd 6t |<00>d 6} t j
| <00>}t |<00>SXWn;tk
rqidd 6dd 6} t j
2018-03-01 16:11:49 +00:00
| <00>}t |<00>SXdS(NuuserIDuPOSTu[iuidudestLocu frequencyiu,u]u fetchStatusuNoneu error_messageudatau6Not Logged In, please refresh the page or login again.(RRFR RR;RLRR<>t frequencyRGRPRR,R0R(
RRR<>RURVRARWRXR8RY((s"/usr/local/CyberCP/backup/views.pytgetCurrentBackupSchedules1s4       
2017-12-14 06:56:27 -05:00
$ c Cs<>y<>|jd}yf|jdkrutj|j<00>}|d}|d}d}y<>tjjd|<00>}|jj |kr<>tj
idd6d d
6<>}t |<00>S|d krx|d krxd }t j |<00>t|d<00>} | j|d<17>| j<00>t j|<00>d}
tjtj|
<00><00>tjjd|<00>} td| d|<00>} | j<00>tj
idd6dd
6<>}t |<00>S|d krQ|dkrQd}t j |<00>t|d<00>} | j|d<17>| j<00>t j|<00>d}
tjtj|
<00><00>tjjd|<00>} td| d|<00>} | j<00>tj
idd6dd
6<>}t |<00>S|d kr*|d kr*d}t j |<00>t|d<00>} | j|d<17>| j<00>t j|<00>d}
tjtj|
<00><00>tjjd|<00>} td| d|<00>} | j<00>tj
idd6dd
6<>}t |<00>S|d kr|dkrd}t j |<00>t|d<00>} | j|d<17>| j<00>t j|<00>d}
tjtj|
<00><00>tjjd|<00>} td| d|<00>} | j<00>tj
idd6dd
6<>}t |<00>SWqu|d kr<>|d kr<>d }t j |<00>t|d<00>} | j|d<17>| j<00>t j|<00>d}
tjtj|
<00><00>tjjd|<00>} td| d|<00>} | j<00>tj
idd6dd
6<>}t |<00>S|d kr<>|dkr<>d}t j |<00>t|d<00>} | j|d<17>| j<00>t j|<00>d}
tjtj|
<00><00>tjjd|<00>} td| d|<00>} | j<00>tj
idd6dd
6<>}t |<00>S|d kr<>|d kr<>d}t j |<00>t|d<00>} | j|d<17>| j<00>t j|<00>d}
tjtj|
<00><00>tjjd|<00>} td| d|<00>} | j<00>tj
idd6dd
6<>}t |<00>S|d krr|dkrrd}t j |<00>t|d<00>} | j|d<17>| j<00>t j|<00>d}
tjtj|
<00><00>tjjd|<00>} td| d|<00>} | j<00>tj
idd6dd
6<>}t |<00>SquXnWn=tk
r<>} tj
idd6t| <00>d
6<>}t |<00>SXWn;tk
r<>tj
idd6t| <00>d
6<>}t |<00>SXdS(NuuserIDuPOSTu
backupDestu
2018-03-01 16:11:49 +00:00
backupFrequ /etc/crontabR<62>iuscheduleStatusuThis schedule already existsu error_messageuHomeuDailyuJ0 3 * * 0-6 root python /usr/local/CyberCP/plogical/backupScheduleLocal.pyuau
usudo systemctl restart crondR<64>RiuNoneuWeeklyuI0 3 * * 3 root python /usr/local/CyberCP/plogical/backupScheduleLocal.py uE0 3 * * 0-6 root python /usr/local/CyberCP/plogical/backupSchedule.pyuD0 3 * * 3 root python /usr/local/CyberCP/plogical/backupSchedule.py (RRFRGRHRIR RRRR<>RPRR tpermissionControlRvR<>Rxt leaveControlR'R(R%R&R{R,R0R(RRRQt
2017-12-14 06:56:27 -05:00
backupDestt
2018-03-01 16:11:49 +00:00
backupFreqR"tscheduleRXtcronJobR/R3t destinationt newScheduleR8((s"/usr/local/CyberCP/backup/views.pytsubmitBackupScheduleWs 
2017-12-14 06:56:27 -05:00


 
 

 
 

 
 

 
 
 
 

 
 

 
 

 
 
# #c Cs<>y?|jd}y<>|jdkr<>tj|j<00>}|d}|d}d}|dkry|dkrytj|<00>t|d<00>j<00>}t|d <00>}xK|D]C}|j d
<00>d kr<>|j d <00>d kr<>q<>q<>|j
|<00>q<>W|j <00>tj |<00>d }t jtj|<00><00>tjjd|<00>} tjjd| d|<00>}
|
j<00>tjidd6dd6<>} t| <00>S|dkr<>|dkr<>tj|<00>t|d<00>j<00>}t|d <00>}xK|D]C}|j d<00>d kr<>|j d <00>d kr<>q<>q<>|j
|<00>q<>W|j <00>tj |<00>d }t jtj|<00><00>tjjd|<00>} tjjd| d|<00>}
|
j<00>tjidd6dd6<>} t| <00>S|dkr<>|dkr<>tj|<00>t|d<00>j<00>}t|d <00>}xK|D]C}|j d
<00>d kr*|j d<00>d kr*q<>q<>|j
|<00>q<>W|j <00>tj |<00>d }t jtj|<00><00>tjjd|<00>} tjjd| d|<00>}
|
j<00>tjidd6dd6<>} t| <00>S|dkr<>|dkr<>tj|<00>t|d<00>j<00>}t|d <00>}xK|D]C}|j d<00>d krU|j d<00>d krUqq|j
|<00>qW|j <00>tj |<00>d }t jtj|<00><00>tjjd|<00>} tjjd| d|<00>}
|
j<00>tjidd6dd6<>} t| <00>SnWn=tk
r=} tjidd6t| <00>d6<>} t| <00>SXWn;tk
2018-03-01 16:11:49 +00:00
r|tjidd6t| <00>d6<>} t| <00>SXdS(NuuserIDuPOSTudestLocu frequencyu /etc/crontabuHomeuDailyuruwu0-6i<36><69><EFBFBD><EFBFBD>ubackupScheduleLocal.pyusudo systemctl restart crondR<64>RR<>iu delStatusuNoneu error_messageuWeeklyu* 3ubackupSchedule.pyi(RRFRGRHRIR R<>RvR<>R<>R<>RxR<>R'R(R%R&RRRR R<>RPRR,R0R( RRRQR<>R<>R"R/RAR3R<>R<>RXR8((s"/usr/local/CyberCP/backup/views.pytscheduleDelete#s<> 
2017-12-14 06:56:27 -05:00

  *
 

  *
 

  *
 

  *
 
# #cCskyL|jd}tjjd|<00>}|jdkr>td<00>St|d<00>SWntk
2018-03-01 16:11:49 +00:00
rftt <00>SXdS(NuuserIDRiu5You don't have enough priviliges to access this page.ubackup/remoteBackups.html(
RRRRRRRRRR
(RtuserIDR((s"/usr/local/CyberCP/backup/views.pyt remoteBackups<70>s 
 cCs<>yT|jdkrItj|j<00>}|d}|d}ytjidd6|d6<>}d|d}tj|d|d t<00>}tj|j<00>}|d
2017-12-14 06:56:27 -05:00
d krt j
j d d <00>}|d |j kr<>|d|j kr<>qTidd6dd6dd6}tj|<00>}t|<00>Sn<idd6d|dd6dd6}tj|<00>}t|<00>SWnNtk
r<>} idd6dt| <00>d6dd6}tj|<00>}t|<00>SXtjidd6|d6<>}d|d}tj|d|d t<00>}tj|j<00>}|dd kr$|djd<00>}
n/tjidd6d|dd6<>} t| <00>Sdttdd<00><00>} t| d<00>} | j|
2018-03-01 16:11:49 +00:00
<00>| j<00>dtjd }|d!| }tjtj|<00><00>}|jd"<00>d#kr<>n'tjidd6|d6<>} t| <00>Sy<53>tjidd6|d6<>}d|d$}tj|d|d t<00>}tj|j<00>}|d%d kr<>|d&}id d6d'd6dd6|d&6}tj|<00>}t|<00>Sidd6d(|dd6dd6}tj|<00>}t|<00>SWqStk
rE} idd6d(t| <00>d6dd6}tj|<00>}t|<00>SXn
td)<00>SWn6tk
r<>} tjidd6t| <00>d6<>} nXt| <00>S(*NuPOSTu ipAddressupassworduadminuusernameuhttps://u:8090/api/cyberPanelVersionRQtverifyu
getVersioniRucurrentVersionubuildiustatusu:Your version does not match with version of remote server.u error_messageuNulludiru;Not able to fetch version of remote server. Error Message: u:8090/api/fetchSSHkeyu pubKeyStatusupubKeyu
uEI am sorry, I could not fetch key from remote server. Error Message: u/home/cyberpanel/i<>i'uwu sudo python u$/plogical/remoteTransferUtilities.pyu writeAuthKey --pathToKey u1,Nonei<65><69><EFBFBD><EFBFBD>u':8090/api/fetchAccountsFromRemoteServeru fetchStatusudatauNoneu>Not able to fetch accounts from remote server. Error Message: u#This URL only accepts POST requests(RFRGRHRIRPtrequeststposttFalseRiR RRtcurrentVersiontbuildRR,R0R<>RRvRwRxR RyR'R<>R%R&R<>(RRQR<>Rot finalDataturltrtVersiontdata_retR8tpubKeyRXt pathToKeytvhostR<74>toutputRU((s"/usr/local/CyberCP/backup/views.pytsubmitRemoteBackups<70>s<>
2017-12-14 06:56:27 -05:00

2018-03-01 16:11:49 +00:00
&

 


 
 


2017-12-14 06:56:27 -05:00

2018-03-01 16:11:49 +00:00


'cCs<>yd|jd}y|jdkr"tj|j<00>}|d}|d}|d}y<>tjjddd<00>}t|<00>}|j <00>}tj
id d
6|d6|d6|d6<>} d |d }
t j |
d | dt <00>} tj| j<00>}|ddkr<>tjjdd<00>} tjj| <00>sEd| } tjtj| <00><00>ndt|d<19>}d|} tjtj| <00><00>tj
idd6dd6|dd6<>}t|<00>Stj
idd6d|dd6<>}t|<00>SWq"tk
r}tj
idd6dt|<00>d6<>}t|<00>SXnWn=tk
rb}tj
idd6t|<00>d6<>}t|<00>SXWn;tk
r<>tj
idd6t|<00>d6<>}t|<00>SXdS(NuuserIDuPOSTu ipAddressupassworduaccountsToTransferu/etcu
cyberpanelu machineIPuadminuusernameuhttps://u:8090/api/remoteTransferRQR<>utransferStatusiu/homeubackupu sudo mkdir u/home/backup/transfer-udiruremoteTransferStatusuNoneu error_messageiu1Can not initiate remote transfer. Error message: (RRFRGRHRIR!R"R#RvtreadRPR<>R<>R<>RiR$R'R(R%R&R0RR,R(RRRQR<>RotaccountsToTransfertipFiletftownIPR<50>R<>R<>tlocalBackupDirR3tlocalStoragePathRXR8((s"/usr/local/CyberCP/backup/views.pytstarRemoteTransfer.sN 
2017-12-14 06:56:27 -05:00


2018-03-01 16:11:49 +00:00
  +

2017-12-14 06:56:27 -05:00
(
%# #c
Cs)y<>|jdkr<>tj|j<00>}|d}|d}|d}d}tji|d6|d6|d6<>}tjd|dd |d
t<00>}tj|j<00>}|d d kr<>|d j d<00>dkr id d6dd6|d d 6d d6}tj|<00>}t
|<00>S|d j d<00>dkrZidd6|d d6dd6}tj|<00>}t
|<00>Sid d6dd6|d d 6dd6}tj|<00>}t
|<00>Sq<53>idd6|dd6dd6}tj|<00>}t
|<00>SnWnJt k
r$} idd6t | <00>d6dd6}tj|<00>}t
2018-03-01 16:11:49 +00:00
|<00>SXdS(NuPOSTu ipAddressupasswordudiruadminuusernameuhttps://u#:8090/api/FetchRemoteTransferStatusRQR<>u fetchStatusiustatusu2Backups are successfully generated and received oni<6E><69><EFBFBD><EFBFBD>uremoteTransferStatusuNoneu error_messageu backupsSentu[5010]i( RFRGRHRIRPR<>R<>R<>RiR<>RR,R0(
RRQR<>RoR<>tusernameR<65>R<>RUR8((s"/usr/local/CyberCP/backup/views.pytgetRemoteTransferStatusps@
2017-12-14 06:56:27 -05:00


$#&



 
2018-03-01 16:11:49 +00:00
!c Cs\y|jd}y<>|jdkr<>tj|j<00>}|d}dt|<00>}dtjd}|d|dt|<00>}tj t
j |<00><00>t j d <00>id
d 6d d 6}tj|<00>}t|<00>SWnCtk
r}idd 6t|<00>d 6}tj|<00>}t|<00>SXWnBtk
rWidd 6dd 6dd6}tj|<00>}t|<00>SXdS(NuuserIDuPOSTu backupDiru/home/backup/transfer-u sudo python u$/plogical/remoteTransferUtilities.pyu) remoteBackupRestore --backupDirComplete u --backupDir iiuremoteRestoreStatusuNoneu error_messageiunot logged in as adminu existsStatus(RRFRGRHRIR0R RyR'RzR%R&RgR|RPRR,R( RRRQt backupDirtbackupDirCompleteR<65>RUR8R<>((s"/usr/local/CyberCP/backup/views.pytremoteBackupRestore<72>s, 
  c
Csy<>|jdkr<>tj|j<00>}|d}d|dd}dt|<00>}tjd<00>tjj |<00>r<>d|}t
j t j |<00><00>}|jd<00>d kr<>d
|}id d 6d d6|d6d d6}tj|<00>}t|<00>S|jd<00>d krEd
|}idd 6|d6d d6dd6}tj|<00>}t|<00>Sid d 6d d6|d6dd6}tj|<00>}t|<00>Sq<53>idd 6dd6d d6dd6}tj|<00>}t|<00>SnWnQtk
r} idd 6t| <00>d6d d6dd6}tj|<00>}t|<00>SXdS(NuPOSTu backupDiru/home/backup/transfer-u/u
backup_logiu sudo cat ucompleted[success]i<><69><EFBFBD><EFBFBD>u sudo rm -rf iuremoteTransferStatusuNoneu error_messageustatusucompleteu[5010]iuNo such log found(RFRGRHRIR0RgR|R!R"tisfileR'R<>R%R&R<>RPRR,(
RRQR<>t backupLogPatht removalPathR3RKR<>RUR8((s"/usr/local/CyberCP/backup/views.pytlocalRestoreStatus<75>s>
 
2017-12-14 06:56:27 -05:00

"


" "(c Cs y<>|jdkr<>tj|j<00>}|d}|d}|d}d}tji|d6|d6|d6<>}tjd|dd |d
t<00>}tj|j<00>}|d d kr<>nt j
j d <00>dt |<00>}t jj|<00>r<>y~|d} t| d<00>j<00>d}
yt jt|
<00>tj<00>Wn-tk
rX} t j
j t | <00>d<17>nXt|<00>Wnt|<00>nXid d 6dd6}tj|<00>} t| <00>Sid d 6dd6}tj|<00>} t| <00>SnWnCtk
2018-03-01 16:11:49 +00:00
r} idd 6t | <00>d6}tj|<00>} t| <00>SXdS(NuPOSTu ipAddressupasswordudiruadminuusernameuhttps://u:8090/api/cancelRemoteTransferRQR<>u cancelStatusiuKSome error cancelling at remote server, see the log file for remote server.u/home/backup/transfer-u/piduriu [cancelRemoteBackup]uNoneu error_message(RFRGRHRIRPR<>R<>R<>RiR-R.R/R0R!R"R$RvR<>tkillR<6C>tsignaltSIGKILLR,R R( RRQR<>RoR<>R<>R<>R<>R"tpathpidtpidR8RU((s"/usr/local/CyberCP/backup/views.pytcancelRemoteBackup<75>sF
2017-12-14 06:56:27 -05:00


$#

2018-03-01 16:11:49 +00:00
(Nt
__future__Rtdjango.shortcutsRRt django.httpRtmodelsRtloginSystem.modelsRRGtwebsiteFunctions.modelsRRRR tplogical.CyberCPLogFileWriterR.R-tloginSystem.viewsR
R!Rgtplogical.backupUtilitiesR<73>R<>tshutilR R%R'R<>R<>tbaseTemplate.modelsR tplogical.virtualHostUtilitiesR trandomRtxml.etree.ElementTreeRRt xml.etreeRtxml.domRt
dns.modelsRRtmailServer.modelsRrRR R9RERZR<>R<>R<>R<>R<>R<>R<>R<>R<>R<>R<>R<>R<>R<>R<>R<>R<>R<>R<>R<>R<>R<>(((s"/usr/local/CyberCP/backup/views.pyt<module>sf "        & ' 4 <09> O ' $ 7 > (  :  & <09> <09> y B + & .