Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: SSH move files  (gelezen 2705 keer)

Offline RogierVLD

  • Lid
  • Steunpunt: Nee
SSH move files
« Gepost op: 2011/03/02, 14:25:36 »
Hoi,

Van de een naar de de andere ubuntu server wil ik bestanden verplaatsen. Van A naar B.
Mijn vraag is: wat gebeurd er wanneer er tijdens het verplaatsen een nieuw bestand bij komt op computer A?

Dank u wel.

Rogier

Offline Roc.am

  • Lid
  • Steunpunt: Nee
Re: SSH move files
« Reactie #1 Gepost op: 2011/03/02, 15:38:09 »
Deze wordt dan niet meegenomen, omdat deze niet in je opdracht zat.
Deze zal dus apart verplaatst moeten worden als dat de bedoeling is.

- Roc
Is je vraag opgelost? Markeer het als [OPGELOST] in de titel van je bericht!

Offline Rachid

  • Vertaalteam
    • rachidbm
    • Mijn blog
  • Steunpunt: Nee
Re: SSH move files
« Reactie #2 Gepost op: 2011/03/02, 15:46:24 »
Je zou rsync kunnen gebruiken om 2 mappen te synchroniseren. Als er dan iets nieuw bijkomt, voer je rsync nog een keer uit, en zullen alleen de nieuwe (en nieuw bijgewerkte) bestanden overgezet worden.
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline RogierVLD

  • Lid
  • Steunpunt: Nee
Re: SSH move files
« Reactie #3 Gepost op: 2011/03/10, 15:34:55 »
Hoi,

Bedankt voor de antwoorden.

Voor mij is het van belang dat de bestanden op computer A gewist worden na het verplaatsen.
Van A naar B verplaatsen, dus op A wissen.
Kan ik een SH script maken, waarin ik eerst inlog op computer B. Dan de boel verplaats en dan uitlog?
Het programma scp kopieert, maar wist niet.

Met Rsync lukt het me niet. Het wis gedeelte dan. Syncen an sich wel.

Offline Johan van Dijk

  • Administrator
    • johanvandijk
  • Steunpunt: Nee
Re: SSH move files
« Reactie #4 Gepost op: 2011/03/10, 15:51:28 »
Rsync heeft ook een --remove-source-files optie, al haalt die alleen bestanden weg en geen mappen.
Je zou daarna met find (of een andere tool) een scriptje kunnen maken dat lege dirs weghaalt.

Edit:
find dirnaam -type d -empty -deleteDit haalt alle lege directory's weg die in dirnaam staan.
« Laatst bewerkt op: 2011/03/10, 15:54:27 door Johan van Dijk »

Offline RogierVLD

  • Lid
  • Steunpunt: Nee
Re: SSH move files
« Reactie #5 Gepost op: 2011/03/10, 16:31:42 »
Ik krijg een vage foutmelding. Misschien doe ik iets verkeerds....

Citaat
root@pscomp:/var/spool/asterisk/monitor $ rsync -r --stats --progress  --delete-after --remove-source-files "/var/spool/programma/." "administratie@192.168.0.102:/media/truecrypt1/bu9/"
rsync: --remove-source-files: unknown option
rsync error: syntax or usage error (code 1) at main.c(1231) [client=2.6.8]
« Laatst bewerkt op: 2011/03/10, 16:33:51 door RogierVLD »

Offline Johan van Dijk

  • Administrator
    • johanvandijk
  • Steunpunt: Nee
Re: SSH move files
« Reactie #6 Gepost op: 2011/03/10, 16:55:13 »
Dan is jouw versie van rsync blijkbaar te oud en kent die optie nog niet.
Rsync 3.07 zit standaard in 10.04 en die kent het wel...

Verder vraag ik me af of de punt achter "/var/spool/programma/." daar wel hoort.

Uit de manpage:
       --delete
              This tells rsync to delete extraneous files from the receiving side (ones that aren’t on the sending side), but only for the directories that are being synchronized.  You must have asked rsync to send the whole direc‐
              tory (e.g. "dir" or "dir/") without using a wildcard for the directory’s contents (e.g. "dir/*") since the wildcard is expanded by the shell and rsync thus gets a request to transfer individual files, not  the  files’
              parent  directory.
En omdat jij --delete-after gebruikt gelden deze regels van --delete ook.

Offline RogierVLD

  • Lid
  • Steunpunt: Nee
Re: SSH move files
« Reactie #7 Gepost op: 2011/03/11, 16:34:03 »
Hoi,

Het gaat de goede kant op. De punt hoort idd niet.
Ik heb nog wel een probleem.

Stel ik start een batch bestand. En tegelijkertijd is er een opname bezig. Dit bestand wordt dan gewist terwijl de opname nog niet klaar was.
Is er een methode om een map te scannen en de synchronisatie met RSYNC pas te starten wanneer er geen bestand bezig is?

Een andere optie is om de bestanden niet op computer A op te slaan maar direct op computer B. Dan moet er dus een permanente verbinding zijn. Dat lijkt me een ander onderwerp.

Offline RogierVLD

  • Lid
  • Steunpunt: Nee
Re: SSH move files
« Reactie #8 Gepost op: 2011/03/11, 17:32:25 »
Ha,

Ik ga nu even puzzelen. De output van het volgende commando moet ik aan de exclusive list van Rsync gaan toevoegen:

Citaat
lsof /var/spool/asterisk/monitor/*

Dit natuurlijk allemaal automatisch in een cron job.

Offline RogierVLD

  • Lid
  • Steunpunt: Nee
Re: SSH move files
« Reactie #9 Gepost op: 2011/03/14, 14:14:13 »
Ha,

Via het onderstaande commando maak ik een lijst met bestanden die in gebruik zijn.

Citaat
lsof /var/spool/asterisk/monitor/*  | awk '{ print $9 }' > /var/spool/asterisk/monitor/uitsluiten_bezig.txt

Heeft iemand een idee hoe ik ervoor kan zorgen dat alleen de bestandsnaam ZONDER pad erin komt te staan. Rsync wil dit graag.
Basename is een commando dat ik wel kan bedienen vanaf de prompt maar niet als een soort filter op de output kan zetten.

Dank!

Rogier

Offline Johan van Dijk

  • Administrator
    • johanvandijk
  • Steunpunt: Nee
Re: SSH move files
« Reactie #10 Gepost op: 2011/03/14, 21:16:23 »
lsof /var/spool/asterisk/monitor/*  | awk '{ print $9 }' |
while read bestand
do
    basename "$bestand"
done >/var/spool/asterisk/monitor/uitsluiten_bezig.txt
Zoiets?
Niet getest trouwens, dus eerst kijken of het wel werkt  :P