Automoatizar backup no pfSense
Dica publicada em Shell Script / Miscelânea
Automoatizar backup no pfSense
Bom, vou postar um pequeno script, quase que na verdade um comando que fiz para realizar backup do
meus servidores pfSense, pois antes tinha que entrar 1 a 1 para realizar, a ideia é fazer que o wget realize
esse backup automático após inseri-lo no cron de outra máquina, ou seja, o wget faz o que faríamos
manualmente ele conecta no endereço do pfSense, vai na página de backup e efetua um post solicitando
nesse caso um backup total e gera um arquivo xml com as configurações do pfSense.
Vamos a uma breve explicação
P.S.: No arquivo a ser salvo ele ira gerar um arquivo com a data no formato AA/MM/DD-HH:MM:SS devido ao comando $(date +%F-%X).
Para automatizar:
# crontab -e
E adicione no final, para realizar o backup todo dia as 18:00 horas:
No meu caso como optei para colocar em um arquivo e dentro contém senha, trabalhei também a questão de segurança deixando acesso somente para o root ao arquivo.
# chmod 700 /diretório/wget.sh
No meu exemplo, o arquivo que criei com o comando foi o wget.sh contendo como abaixo:
A ideia dessa dica foi simplesmente divulgar uma necessidade que tinha, e consegui resolver dessa forma, deve se ter outras formas e pode-se também aumentar a complexidade do comando para atender melhor as necessidades de cada um.
wget --output-document="/diretorio/config-gwx-$(date +%F-%X).xml" --http-user='adm' --http-
passwd='xxx' --no-check-certificate --post-data "backuparea=&Submit=download"
https://192.169.2.2/diag_backup.php
Vamos a uma breve explicação
- --output-document - diretório e nome do arquivo onde vai ser gravado o arquivo xml com o backup.
- --http-user - usuário para autenticar no pfsense.
- --http-passwd - senha do usuário do pfsense.
- --no-check-certificate - para não checar o certificado pois não disponho de uma CA para validar o certificado.
- --post-data - os dados que são para ele passar junto a url do pfsense, nesse caso ele passa o backuparea como null, ou seja, backup total do pfsense, ele tem outras opção que poderiam ser passadas como "aliases","shaper", "filter", "nat", "pptpd", "ipsec", "captiveportal", "installedpackages", "interfaces", "dhcpd", "syslog", "system", passando alguma dessas opções ele realiza somente backup dessa parte.
- https://192.169.2.2/diag_backup.php - e esse eh o endereço onde se escreve 192.169.2.2 seria o endereço do seu servidor.
P.S.: No arquivo a ser salvo ele ira gerar um arquivo com a data no formato AA/MM/DD-HH:MM:SS devido ao comando $(date +%F-%X).
Para automatizar:
# crontab -e
E adicione no final, para realizar o backup todo dia as 18:00 horas:
0 18 * * * /diretório/wget.sh
No meu caso como optei para colocar em um arquivo e dentro contém senha, trabalhei também a questão de segurança deixando acesso somente para o root ao arquivo.
# chmod 700 /diretório/wget.sh
No meu exemplo, o arquivo que criei com o comando foi o wget.sh contendo como abaixo:
#!/bin/bash
wget --output-document="/diretorio/config-gwx-$(date +%F-%X).xml" --http-user='adm' --http- passwd='xxx' --no-check-certificate --post-data "backuparea=&Submit=download" https://192.169.2.2/diag_backup.php
wget --output-document="/diretorio/config-gwx-$(date +%F-%X).xml" --http-user='adm' --http- passwd='xxx' --no-check-certificate --post-data "backuparea=&Submit=download" https://192.169.2.2/diag_backup.php
A ideia dessa dica foi simplesmente divulgar uma necessidade que tinha, e consegui resolver dessa forma, deve se ter outras formas e pode-se também aumentar a complexidade do comando para atender melhor as necessidades de cada um.
Att,