Jump to content
beto.digital

Backups via cpanel

Recommended Posts

Olá amigos, sou novo no autoit e gostaria de fazer backup manual no cpanel via google chorme. Porque atualmente eu faço isso manualmente e tenho várias contas para fazer backups diariamente.

 

Obrigado pela ajuda

 

Att,

 

Roberto

Share this post


Link to post
Share on other sites

Olá, faz alguns dias que li este post, e a única forma que me vem na cabeça, é de ele ler o HTML da página em questão, e separar informação por informação, a partir do código.

Vai funcionar? Sim.

Mas quando o provedor alterar alguma coisa na página, pode ser que o script deixe de ler uma ou mais, ou até nenhuma informação.

 

Alguém tem outra forma de ver?

Share this post


Link to post
Share on other sites

Caro Roberto, pode parecer que estou dando uma resposta desanimadora, mas acredito que não...

 

Veja por esse lado...

Por exemplo, posso para você me passar a página, e montar todo o script que lê cada TAG html e filtra os dados, seria fácil e rápido não?

Mas quando o provedor alterar um simples CSS da página, e que no meu ponto de vista altera quase sempre, talvez "TODO" o trabalho tenha que ser revisado ou refeito.

 

No frigir dos ovos, o que você quer é simples.

Exige muita atenção e repetição.

Se você quer ter sucesso neste ponto, sugiro que você aprenda como fazer, senão ficará escravo de alguém que lhe faça o serviço.

 

Posso até ajudar com alguma página simples, como "extrair" duas ou três TAGs, mas você tem que ter o "feeling" para fazer as demais, e ir adaptando conforme a necessidade.

 

Enfatizo é necessário ter um conhecimento bom de AutoIt no que se refere à variáveis, strings e as funções que tratam de manipulação de strings.

Share this post


Link to post
Share on other sites

Por incrível que pareça, acho que tentaria algo mais primitivo como simular movimentos do mouse e digitação, usando pixelsearch e/ou imagesearch, e/ou então veria a possibilidade de adaptar tudo ao uso da udf do internet explorer "IE.au3"...

 

Att,

Antony Gabarron

Share this post


Link to post
Share on other sites

@antony, a sua sugestão também é muito viável!

 

Mas, se o CSS da página mudar (entenda tamanho e posição dos elementos da página), pode ser que sofra do mesmo problema que eu disse acima....

Share this post


Link to post
Share on other sites

@antony, a sua sugestão também é muito viável!

 

Mas, se o CSS da página mudar (entenda tamanho e posição dos elementos da página), pode ser que sofra do mesmo problema que eu disse acima....

 

A ideia de usar imagesearch e pixelsearch a justamente para contornar essa situação... Mesmo que o tamanho e a posição mude ele ainda encontrará a coordenada na tela onde se encontra seu botão.

Ainda que eu não acredite que exista uma solução precisa para o que você procura, imagino que esta seja a mais flexível caso hajam pequenas alterações..

 

Outra coisa é que o ideal é trabalhar com o que vc tem em mãos, pois não é possível prever as alterações que o desenvolvedor do site fará.

 

Att,

Antony Gabarron

Share this post


Link to post
Share on other sites

Boa tarde amigos,

 

Agradeço a todos pela ajuda, vou dar um exemplo básico do que eu preciso e depois eu vou me virando no restante porque sou leigo no autoit.

 

Segue a sequencia de passos do que eu preciso, vamos lá:

 

1 - Acesso meusite.com.br/cpanel

 

2 - coloco o login e senha

 

3 - após colocar login e senha acima eu sou direcionado para a página principal

 

4 - clico no link de backup para acessar a página de backup = http://www.meusite.com.br:2082/frontend/x3/backup/index.html

Eu faço esse backup diariamente de vários sites e acredito que tem que fazer com o browser porque quando vcs clicam nesses links ele automaticamnete baixa tanto o banco de dados compactado como também a home inteira do site.
Um abraço e agradeço a todos pela ajuda.
Roberto

Share this post


Link to post
Share on other sites

Podes usar cURL (para a navegação entre as páginas) e Expressão Regular (para validações das páginas e para realizar o download).

Share this post


Link to post
Share on other sites

Eu não sei qual a forma que é usada para obter os arquivos (click, link estático..) então vou deixar um pedaço do código de um projeto meu como demonstração.

A ideia principal é criar uma aplicação desktop para que eu pudesse ver novos posts aqui no fórum sem precisar estar logado no navegador.

Para entender como funciona o código você precisa ter alguma noção em "HTML" em um pouco de "Expressões Regulares".

Você tem que analisar as <FORM> e outros elementos para poder fazer login, navegar pelo site e obter os downloads.

#include-once
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <Array.au3>

Global $obj = ObjCreate('WinHttp.WinHttpRequest.5.1')

Main()
Exit

; =============================================================================
; Main Function
; =============================================================================
Func Main()

   LoginForm()

EndFunc

; =============================================================================
; Login Form
; =============================================================================
Func LoginForm()
   $Form1 = GUICreate("Window Title", 268, 395, 213, 167, Default)
   $MenuItem1 = GUICtrlCreateMenu("&Options")
   $MenuItem2 = GUICtrlCreateMenu("&Help")
   $MenuItem3 = GUICtrlCreateMenuItem("&Check Update", $MenuItem2)
   $MenuItem4 = GUICtrlCreateMenuItem("&About", $MenuItem2)
   $Input1 = GUICtrlCreateInput("", 40, 136, 200, 21)
   $Label1 = GUICtrlCreateLabel("Username", 107, 115, 52, 17, $SS_CENTER)
   $Label2 = GUICtrlCreateLabel("Password", 109, 170, 50, 17, $SS_CENTER)
   $Input2 = GUICtrlCreateInput("", 40, 189, 200, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD))
   $Checkbox1 = GUICtrlCreateCheckbox("Remember me", 87, 241, 97, 17)
   GUICtrlSetState(-1, $GUI_DISABLE)
   $Button1 = GUICtrlCreateButton("Login", 76, 265, 113, 29)
   GUISetState(@SW_SHOW)

   While 1
	  $iMsg = GUIGetMsg()
	  Select
		 Case $iMsg = $GUI_EVENT_CLOSE
			ExitLoop
		 Case $iMsg = $Button1
			Login($Input1, $Input2)
			ExitLoop
	  EndSelect
   WEnd
   GUIDelete($Form1)
EndFunc

; =============================================================================
; Data
; =============================================================================
Func Login($d_username, $d_password)
   Local $username = GUICtrlRead($d_username)
   Local $password = GUICtrlRead($d_password)

   Local $data = 'auth_key=880ea6a14ea49e853634fbdc5015a024&referer=http://forum.autoitbrasil.com/&ips_username='&$username&'&ips_password='&$password
   Local $receive = HttpPost($obj, 'http://forum.autoitbrasil.com/index.php?app=core&module=global&section=login&do=process', $data)

   Local $regCheck = "<div id='user_navigation' class='logged_in'>"
   If StringRegExp($receive, $regCheck, $STR_REGEXPMATCH) = 1 Then
	  FileDelete('receive.html')
	  FileWrite('receive.html', $receive)

	  ConsoleWrite('Logged.' & @CRLF)
   Else
	  FileDelete('receive.html')

	  ConsoleWrite('Not logged.' & @CRLF)
   EndIf

EndFunc

; =============================================================================
; HttpPost()
; =============================================================================
Func HttpPost($obj, $url, $data='', $cookies='')
   $obj.Open('POST', $url, False)
   $obj.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
   $obj.SetRequestHeader('Accept-Charset', 'utf-8')
   $obj.Send($data)

   If($obj.Status<>200) Then Return False
   Return $obj.ResponseText
EndFunc

; =============================================================================
; HttpGet()
; =============================================================================
Func HttpGet($obj, $url, $data='')
   $obj.Open('GET', $url, False)
   $obj.SetRequestHeader('Content-Type', 'text/html; charset=utf-8')
   $obj.Send($data)

   If($obj.Status<>200) Then Return False
   Return $obj.ResponseText
EndFunc

Edited by Frezan

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×