Aqui faremos um POST rápido sobre um assunto que acreditamos que possa acrescentar a vários profissionais, seremos breves e abordaremos de uma maneira também bem simples com o objetivo de agregar o máximo da forma mais rápida.
Requisitos
Primeiro vamos aos requisitos para execução, precisaremos:
- Dos dados do servidor de arquivos, sendo:
- O endereço IP;
- O nome da pasta compartilhada;
- De credencial (usuário, senha e domínio) com acesso de escrita na pasta de rede compartilhada;
Configuração e teste inicial
Com os requisitos necessários, no CentOS, vamos instalar o Samba Client (smbclient). Para isso execute no CentOS o comando:
yum install samba-client -y
Vamos criar um arquivo para fazermos uma cópia de teste. Para isso, execute os seguintes comandos:
cd /tmp
echo “teste1” > /tmp/arquivo1.txt
echo “teste2” > /tmp/arquivo2.txt
Agora vamos copiar o arquivo, para isso utilize o seguinte comando (altere as partes em cinza conforme a sua necessidade):
smbclient //192.168.77.199/NomeCompartilhamento -U usuario@dominio.com –pass senha -c “lcd /tmp/; put arquivo1.txt“
Verifique se o arquivo1.txt foi copiado, se funcionou corretamente vamos fazer com as credenciais definidas em um arquivo de configuração, para evitarmos inserir usuários e senhas em linha de comando. Para isso execute os seguintes comandos (altere as partes em cinza conforme a sua necessidade):
mkdir -p /etc/smbclient
echo “username = usuario” > /etc/smbclient/NomeServidor_NomeCompartilhamento
echo “password = senha” >> /etc/smbclient/NomeServidor_NomeCompartilhamento
echo “password = senha” >> /etc/smbclient/NomeServidor_NomeCompartilhamento
echo “domain = dominio.com” >> /etc/smbclient/NomeServidor_NomeCompartilhamento
smbclient //192.168.77.199/NomeCompartilhamento -A /etc/smbclient/NomeServidor_NomeCompartilhamento -c “lcd /tmp/; put arquivo2.txt“
Verifique se o arquivo2.txt também foi copiado.
Opcional – Fazendo o backup de arquivos
Vamos supor que você criou um servidor utilizando nosso post Instalando o Proxy Reverso com Ngnix no CentOS e agora quer fazer backup de toda a configuração, uma possível solução seria um comando que liste todos os arquivos de configuração e, para cada arquivo, copie para a pasta de rede. Para isso execute o comando (altere as partes em cinza conforme a sua necessidade):
for file in `ls /etc/nginx/conf.d`; do smbclient //192.168.77.199/NomeCompartilhamento -A /etc/smbclient/NomeServidor_NomeCompartilhamento -c “lcd /tmp/; put $file”; done
Se desejar criar uma rotina diária automática, às 23:00 (por exemplo), para executar esse backup, crie o agendamento do cron, com o seguinte comando:
vim /etc/cron.d/smbclient
Dentro do arquivo, coloque o seguinte (altere as partes em cinza conforme a sua necessidade):
# Run the certbot jobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
0 23 * * * root for file in `ls /etc/nginx/conf.d`; do smbclient //192.168.77.199/NomeCompartilhamento -A /etc/smbclient/NomeServidor_NomeCompartilhamento -c "lcd /tmp/; put $file"; done
Salve, reinicie o crond (comando systemctl crond restart) e teste.
Fontes/Referências
NVLAN – Instalando o Proxy Reverso com Ngnix no CentOS7
https://samba.org/samba/docs/current/man-html/smbclient.1.html
https://superuser.com/questions/856617/how-do-i-recursively-download-a-directory-using-smbclient
https://stackoverflow.com/questions/56154775/script-to-copy-log-files-from-linux-server-to-windows-shared-server
https://unix.stackexchange.com/questions/227538/is-it-possible-to-transfer-a-file-from-a-linux-bash-script-to-windows-without-mo
Mais Informações
Esperamos ter te ajudado e estaremos sempre a disposição para mais informações.
Se você tem interesse em algum assunto específico, tem alguma dúvida, precisa de ajuda, ou quer sugerir um post, entre em contato conosco pelo e-mail equipe@nvlan.com.br.