O SCP, ou Secure Copy, é um protocolo de transferência de arquivos via SSH. Por isso, roda em Linux.
Trata-se de uma forma segura para transferência de arquivos, pois o SSH criptografa a comunicação entre origem e destino.
Essa transferência pode ser de um local à outro dentro de um mesmo computador, de um computador para outro via rede local ou via Internet.
Podemos usá-lo via linha de comando ou via Client. Nesse artigo, abordo como utilizá-lo via linha de comando.
scp arquivo usuario@ip:Destino
Bem vamos para um exemplo pratico:
scp firewall.sh root@192.168.0.1:/home/scripts
O exemplo acima vai transferir o arquivo firewall.sh para o diretório /home/scripts.
scp firewall.sh root@192.168.0.2:~/scrips/teste
Nesse exemplo estamos transferindo o arquivo firewall.sh para o subdiretório scripts/teste dentro do home do root, no caso o arquivo vai para /root/scripts/teste
scp firewall.sh root@192.168.0.2:/etc/init.d
Agora estamos transferindo o arquivo firewall.sh para o diretório /etc/init.d
Também podemos transferir diretórios inteiros para isso é só adicionar o parâmetro -r e informar o diretório, no exemplo abaixo copiamos todo o diretório /mnt/backup-mysql para o diretório /backup do servidor.
scp -r /mnt/backup-mysql root@192.168.0.2:/backup
Também é possível mudar o nome no arquivo no destino, abaixo iremos adicionar a data e hora da copia.
scp -r /mnt/backup-mysql root@192.168.0.2:/backup/mysql-`date +%d.%b.%y-%H-%M`
Também podemos copiar do host remoto, para isso faça:
scp -r root@192.168.0.2:/etc /mnt/backup
No exemplo estamos copiando todo o diretório /etc do host remote para o diretório /mnt/backup no host local.
Caso a porta do ssh não por a padrão é so adicionar o parâmetro -P porta.
scp -P 55698 -r /mnt/backup-mysql root@192.168.0.2:/backup