Em seu sistema local, crie um esqueleto do que você deseja. Por exemplo, se você quiser copiar o arquivo foo
para o local remoto /etc/foo
, será necessário criar um diretório etc
e, em seguida, colocar foo
nele. Então tar
do esqueleto. Agora você pode fazer isso via cron como sugerido por @Anthon nos comentários da pergunta acima.
Passo a passo:
No host remoto, crie um script como este:
#!/bin/sh
DROP="/home/YOURUSERNAME/drop.tgz"
if [ ! -s "$DROP" ]; then exit 0; fi
cd /
tar -pzxf "$DROP" && rm "$DROP"
No host remoto, adicione esse script a uma tarefa cron executada como raiz.
Em seu host local, crie o esqueleto e preencha os arquivos que deseja copiar:
mkdir -p etc
mkdir -p var/www
cp -a foo etc/
cp -a bar var/www/
tar -pzcf drop.tgz etc var
scp drop.tgz REMOTEHOST:
rm -rf drop.tgz etc var
O drop.tgz
será extraído quando o cron da raiz for executado. Note que isso sobrescreverá todos os tipos de coisas que você pode não gostar.
Uma opção mais segura, supondo que há apenas alguns arquivos que você precisa modificar, seria fazer com que sua conta de usuário tenha acesso de gravação a eles ( chown
ou ambos chgrp
e chmod g+w
) e, em seguida, você podescp
deles diretamente.