Pagina 1 di 1

Sovrascrivere un file tramite scp

Inviato: venerdì 6 luglio 2018, 10:48
da DoctorStrange
Buongiorno a tutti.

Oggi, cercavo di salvare un file sul mio piccolo NAS remoto tramite scp. Premetto che la sintassi del comando usata è corretta, perchè il problema non è nel comando stesso:

Codice: Seleziona tutto

sudo scp -P 80 /home/$USER/Scrivania/file-locale-da-copiare remote-username@remote-hostname:/home/$USER/path-di-destinazione-remota
Con questo comando, la connessione e la copia del file, funziona solitamente senza problemi, oggi però ho cercato di ripetere il medesimo comando per sovrascrivere sul NAS remoto un precedente file, che quindi aveva lo stesso nome.

Scp mi ha risposto che non poteva procedere alla copia, perchè ha trovato sulla directory di destinazione un file con lo stesso nome.

Al momento ho aggirato il problema cambiando il nome del file, ma vorrei chiedere: esiste un'opzione o qualche workaround per imporre ad scp di sovrascrivere il vecchio file?

Ho provato a consultare il manpage di scp stesso, ma non mi pare di aver trovato nulla che rispondesse alle mie esigenze.

Altra domanda: se invece di scp, mi fossi servito di "smbclient", la sovrascrittura del file di destinazione sarebbe stata nativa, od avrei avuto il medesimo problem? In pratica, usando il comando "put" di smbclient, il file di destinazione sarebbe stato sostituito in automatico?

Grazie mille a tutti.

Un saluto e buona giornata.

Re: Sovrascrivere un file tramite scp

Inviato: venerdì 6 luglio 2018, 11:23
da rai
Un workaround potrebbe essere fare uno script che si occupa della cosa.

In pseudocodice rozzo:
per ogni file da copiare, verifica la sua esistenza sulla destinazione e in caso positivo lo rinomina; esegue scp sul file, se scp esce senza errore elimina la copia, se no ripristina il nome originale

Re: Sovrascrivere un file tramite scp

Inviato: venerdì 6 luglio 2018, 11:34
da DoctorStrange
Usando solo scp, come si fa ad eliminare un file sulla destinazione? Io finora l'ho sempre usato solamente per aggiungere files sulla destinazione remota.

Se mi connetto tramite SSH al NAS in remoto, posso eliminare il file con il classico "rm", ma servendomi di scp, ed operando da locale per eliminare un file in remoto, non lo sò fare.

Re: Sovrascrivere un file tramite scp

Inviato: venerdì 6 luglio 2018, 12:43
da rai
No, usando "solo" scp non credo proprio che si possa fare. Io ti suggerivo di scrivere un wrapper ad scp, che lo esegue solo dopo avere preparato la destinazione. Una cosa di questo tipo:

Codice: Seleziona tutto

...
for f in *; do
if ssh -q $HOST [[ -e "$DESTINAZIONE/$f" ]]; then
    ssh -q $HOST mv "$DESTINAZIONE/$f" "$DESTINAZIONE/$f.old"
else
    <il tuo comando scp> && ssh $HOST rm -rf "$DESTINAZIONE/$f.old" || ssh -q $HOST mv "$DESTINAZIONE/$f.old" "$DESTINAZIONE/$f"
fi
...
Inoltre non so aiutarti con smb. Per le situazioni in cui è frequente la modifica e copia su remoto degli stessi file forse userei rsync

rsync ha solo la limitazione che può copiare solo locale -> remoto o viceversa, non remoto -> remoto

Re: Sovrascrivere un file tramite scp

Inviato: venerdì 6 luglio 2018, 12:54
da Filoteo
Scp mi ha risposto che non poteva procedere alla copia, perchè ha trovato sulla directory di destinazione un file con lo stesso nome
A me scp sovrascrive senza problemi il file già esistente. Puoi postare l’errore esatto? Anche i permessi del file già presente nella destinazione. Magari anche quelli della cartella contenitrice.

Re: Sovrascrivere un file tramite scp

Inviato: venerdì 6 luglio 2018, 13:02
da DoctorStrange
Filoteo [url=https://forum.ubuntu-it.org/viewtopic.php?p=5068382#p5068382][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
Scp mi ha risposto che non poteva procedere alla copia, perchè ha trovato sulla directory di destinazione un file con lo stesso nome
A me scp sovrascrive senza problemi il file già esistente. Puoi postare l’errore esatto? Anche i permessi del file già presente nella destinazione. Magari anche quelli della cartella contenitrice.
La tua è proprio un'ottima idea. Faccio il mea culpa per non averci pensato.

Dopo pranzo provvederò immediatamente.

Re: Sovrascrivere un file tramite scp

Inviato: sabato 7 luglio 2018, 13:31
da rai
Filoteo ha scritto:A me scp sovrascrive senza problemi il file già esistente.
Ah ecco. In effetti era strano che scp (mai usato, ne ho solo letto il man) si comportasse diversamente da tool analoghi per es. da cp