|
| Søger nem overførsel af filer i U Fra : Kim Ludvigsen |
Dato : 15-07-10 08:46 |
|
Jeg søger en nem metode til at overføre en fil fra dens
placering på Ubuntu til en tilsvarende placering på webserveren.
I OS/2 benytter jeg et script i Rexx, som jeg starter ved at
strække og slippe den ønskede fil på. Scriptet finder så
stien til den pågældende fil, laver en tekstfil, der skal
bruges af FTP-programmet, hvorefter ftp-programmet startes
og overfører filen til serveren.
FTP-programmet er også lavet i en Linux-version, og det er
Rexx såmænd også, men såvidt jeg kan se, skal Rexx startes
fra kommandolinjen, hvorfor træk og slip-metoden
tilsyneladende ikke kan bruges.
Nogen der ved, om det kan lade sig gøre med Rexx-metoden?
Andre forslag til, hvordan det kan gøres? Jeg har absolut
ingen forstand på andre scriptsprog.
Jeg kan selvfølgelig bruge et FTP-program som Filezilla, men
det er langt mere besværligt at skulle sidde og finde den
rette mappe, hver gang man vil overføre en opdateret fil.
--
Mvh. Kim Ludvigsen
Stor guide for begyndere om Ubuntu Linux:
http://kimludvigsen.dk/linux
| |
Frank Damgaard (15-07-2010)
| Kommentar Fra : Frank Damgaard |
Dato : 15-07-10 09:23 |
|
Kim Ludvigsen skrev:
> Jeg søger en nem metode til at overføre en fil fra dens placering på
> Ubuntu til en tilsvarende placering på webserveren.
>
> I OS/2 benytter jeg et script i Rexx, som jeg starter ved at strække og
> slippe den ønskede fil på. Scriptet finder så stien til den pågældende
> fil, laver en tekstfil, der skal bruges af FTP-programmet, hvorefter
> ftp-programmet startes og overfører filen til serveren.
det er for længe siden jeg sidst brugte OS/2 (> 15 år)
så det er røget ud af hukommelsen ....
Jeg prøvede linux i 1992, og det var jo en lille unix,
så os/2, DOS mfl. blev irrelevant... ;)
>
> FTP-programmet er også lavet i en Linux-version, og det er Rexx såmænd
> også, men såvidt jeg kan se, skal Rexx startes fra kommandolinjen,
> hvorfor træk og slip-metoden tilsyneladende ikke kan bruges.
>
> Nogen der ved, om det kan lade sig gøre med Rexx-metoden?
>
> Andre forslag til, hvordan det kan gøres? Jeg har absolut ingen forstand
> på andre scriptsprog.
Du kan gøre det via filemanager og "grafisk/GUI".
I Steder->tilslut server vælger du "FTP med login" som opretter
et ikon på skrivebord.
Du kan derefter via filemanager (nautilus) kopiere filer mv. fra/til
din lokale PC til ftp-serveren.
>
> Jeg kan selvfølgelig bruge et FTP-program som Filezilla, men det er
> langt mere besværligt at skulle sidde og finde den rette mappe, hver
> gang man vil overføre en opdateret fil.
>
Du kan også bruge scripts som er tilpasset opgaven, men hvis du ikke selv
kan programmere, så er den løsning nok ikke den mest velegnede.
Selv bruger jeg til shell-scripts ofte "lftp" der har en "mirror" funktion.
En anden mulighed er "rsync" med ftp.
| |
Kim Ludvigsen (15-07-2010)
| Kommentar Fra : Kim Ludvigsen |
Dato : 15-07-10 09:45 |
|
Den 15-07-2010 10:23, Frank Damgaard skrev:
> Kim Ludvigsen skrev:
>
> det er for længe siden jeg sidst brugte OS/2 (> 15 år)
> så det er røget ud af hukommelsen ....
Jeg har hængt fast i fortiden ...
>> Andre forslag til, hvordan det kan gøres? Jeg har absolut ingen forstand
>> på andre scriptsprog.
>
> Du kan gøre det via filemanager og "grafisk/GUI".
> I Steder->tilslut server vælger du "FTP med login" som opretter
> et ikon på skrivebord.
> Du kan derefter via filemanager (nautilus) kopiere filer mv. fra/til
> din lokale PC til ftp-serveren.
Det vil blot svare til at gøre det i Filezilla - Filezilla
er faktisk bedre, fordi programmet kan synkronisere
mappevalget, så man kun skal skifte mapper ét sted. Men jeg
vil gerne slippe for at skulle ligge og skifte mapper.
> Du kan også bruge scripts som er tilpasset opgaven, men hvis du ikke selv
> kan programmere, så er den løsning nok ikke den mest velegnede.
> Selv bruger jeg til shell-scripts ofte "lftp" der har en "mirror" funktion.
> En anden mulighed er "rsync" med ftp.
Mirror- og sync-funktioner går desværre ikke, da det kun er
den aktuelle fil, der skal overføres. Jeg skal kunne arbejde
på andre filer i samme mappe, uden at de bliver overført
automatisk.
Er det muligt at starte et script med træk og slip, så
scriptet kan udtrække sti og filnavn fra den droppede fil,
oprette en txt-fil med parametre til ftp-programmet og
bagefter starte ftp-programmet med txt-filen som parameter?
Som det kan ses, skal scriptet ikke være voldsomt avanceret,
så måske jeg kan sætte mig ind i det.
--
Mvh. Kim Ludvigsen
Undgå hedeslag i sommervarmen:
http://ordforklaring.dk/ordforklaring.php?forklaring=hedeslag
| |
Frank Damgaard (15-07-2010)
| Kommentar Fra : Frank Damgaard |
Dato : 15-07-10 12:43 |
|
Kim Ludvigsen skrev:
....
>
>> Du kan også bruge scripts som er tilpasset opgaven, men hvis du ikke selv
>> kan programmere, så er den løsning nok ikke den mest velegnede.
>> Selv bruger jeg til shell-scripts ofte "lftp" der har en "mirror"
>> funktion.
>> En anden mulighed er "rsync" med ftp.
>
> Mirror- og sync-funktioner går desværre ikke, da det kun er den aktuelle
> fil, der skal overføres. Jeg skal kunne arbejde på andre filer i samme
> mappe, uden at de bliver overført automatisk.
>
> Er det muligt at starte et script med træk og slip, så scriptet kan
> udtrække sti og filnavn fra den droppede fil, oprette en txt-fil med
> parametre til ftp-programmet og bagefter starte ftp-programmet med
> txt-filen som parameter? Som det kan ses, skal scriptet ikke være
> voldsomt avanceret, så måske jeg kan sætte mig ind i det.
Jeg er ikke faldet over noget af den slags, så i givet fald må du nok
selv ud i at programmere noget.
Jeg bruger ikke selv GUI så frygtelig meget, jeg er gammel CLI fan :)
og normalt klare mirror/sync programmer det fint at få synkroniseret
mapper/filer på webserveren.
Filezilla eller Fireftp (firefox plugin) er heller ikke værst.
Dit problem er vist at du ikke vil have alle nye/ændrede filer loadet
op på webserveren kun bestemte filer, kun enkeltfiler og så kommer du nok
ikke udenom at selv kode lidt.
| |
Jan Birk (15-07-2010)
| Kommentar Fra : Jan Birk |
Dato : 15-07-10 13:52 |
|
>>> Andre forslag til, hvordan det kan gøres? Jeg har absolut ingen forstand
>>> på andre scriptsprog.
Efterstående script kan gøre det - nogenlunde. Scriptet er mere eller
mindre ufærdigt og har flere 'egenskaber' men du kan måske bruge det til
inspiration.
Fidusen er, at du placerer scriptet i $HOME/.gnome2/nautilus-scripts og
kalder det f.eks. "FlytFilTilWebServer". Giv det eksekver rettigheder,
f.eks. chmod 700 "FlytFilTilWebServer".
Hvis ikke du har brugt det specielle katalog før
($HOME/.gnome2/nautilus-scripts) skal du logge ud om ind igen.
Nu kan du højre-klikke på en fil og vælge Scripts->FlytFilTilWebServer
Som sagt er der plads til forbedringer i scriptet. Vi kan jo udveksle
forbedringer undervejs. (Der kan i c&p være noget linieombrydnings fnidder)
------------------------------------------
#!/bin/bash
ftp_server="SERVERNAVN" ; export ftp_server
ftp_user="BRUGERNAVN"
ftp_passwd="PASSWORD"
log="/tmp/lftp.log"
-------
absolut_fil=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS ; export absolut_fil
fil=`basename $absolut_fil` ; export fil
dir=`dirname $absolut_fil` ; export dir
ftp_dir=`dirname $absolut_fil | cut -c 2-` ; export dir
date > $log
lftp -c open -u $ftp_user,$ftp_passwd -e "mkdir -p $ftp_dir" $ftp_server
> $log 2>&1
## Hvis kataloget findes i forvejen exiter lftp med 1
## hvilket rejser en fejl. Ikke saa smart
status=$?
if [ $status != 0 ]; then
zenity --error --title="lftp fejl" --text="FEJL 1 $status `cat $log`"
fi
lftp -c open -u $ftp_user,$ftp_passwd -e "put $absolut_fil"
$ftp_server$dir > $log 2>&1
status=$?
if [ $status != 0 ]; then
zenity --error --title="lftp fejl" --text="FEJL 2 $status
$absolut_file `cat $log`"
fi
zenity --info --title="lftp fejl" --text="Filer: `lftp -c open -u
$ftp_user,$ftp_passwd -e "dir" $ftp_server$dir`"
-----------------------------------
| |
Kim Ludvigsen (15-07-2010)
| Kommentar Fra : Kim Ludvigsen |
Dato : 15-07-10 14:44 |
|
Den 15-07-2010 14:52, Jan Birk skrev:
> Efterstående script kan gøre det - nogenlunde. Scriptet er
> mere eller mindre ufærdigt og har flere 'egenskaber' men du
> kan måske bruge det til inspiration.
Rigtig mange tak. Jeg får dog en lftp-fejl:
Fejl 11 Unknown command
'ws36.surftown.dk/mnt/Terra/html/kimludvigsen.dk'.
Jeg skal have barberet noget af den lokale sti væk, så
strengen i stedet for "mnt/Terra/html/kimludvigsen.dk" kun
indeholder mappen "kimludvigsen.dk", og omvendt skal jeg så
have indsat grundstien på serveren, vist nok "www". Men det
er vel ikke det, der giver fejlen?
Hvordan fjerner/tilføjer jeg i strengene, jf. ovenstående?
--
Mvh. Kim Ludvigsen
Eventyrlysten kvinde:
http://ordforklaring.dk/ordforklaring.php?forklaring=nymfoman
| |
Jan Birk (16-07-2010)
| Kommentar Fra : Jan Birk |
Dato : 16-07-10 09:32 |
|
> Rigtig mange tak. Jeg får dog en lftp-fejl:
> Fejl 11 Unknown command 'ws36.surftown.dk/mnt/Terra/html/kimludvigsen.dk'.
>
> Jeg skal have barberet noget af den lokale sti væk, så strengen i stedet
> for "mnt/Terra/html/kimludvigsen.dk" kun indeholder mappen
> "kimludvigsen.dk", og omvendt skal jeg så have indsat grundstien på
> serveren, vist nok "www". Men det er vel ikke det, der giver fejlen?
>
> Hvordan fjerner/tilføjer jeg i strengene, jf. ovenstående?
Så skulle fejlen være væk, der er stadig issues omkring mellemrum i
filnavnene. Men tilgengæld kan du vælge mere end een fil ad gangen
Katalogerne på ftp serveren _skal_ nu findes i forvejen.
----------------
#!/bin/bash
## Initialisering -START-
ftp_server="" ; export ftp_server
ftp_user=""
ftp_passwd=""
## Initialisering -STOP-
log="/tmp/lftp.log"
##
## Tillad valg af flere filer
##
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS ; do
absolut_fil=$file ; export absolut_fil
fil=`basename $absolut_fil` ; export fil
dir=`dirname $absolut_fil` ; export dir
ftp_dir=`dirname $absolut_fil | cut -c 2-` ; export dir
absolut_fil=$(zenity --entry --text "Den valgte fil: " --entry-text
"$absolut_fil"); echo "$absolut_fil"
date > $log
lftp -c open -u $ftp_user,$ftp_passwd -e "put "$absolut_fil""
$ftp_server$dir > $log 2>&1
status=$?
if [ $status != 0 ]; then
zenity --error --title="lftp fejl" --text="FEJL 2 $status
"$absolut_file" `cat $log`"
fi
done
zenity --info --title="Flyttede filer i $ftp_server:$ftp_dir:"
--text="`lftp -c open -u $ftp_user,$ftp_passwd -e "dir" $ftp_server$dir`"
--------------
| |
Adam Sjøgren (15-07-2010)
| Kommentar Fra : Adam Sjøgren |
Dato : 15-07-10 18:05 |
|
On Thu, 15 Jul 2010 09:45:56 +0200, Kim wrote:
> Jeg søger en nem metode til at overføre en fil fra dens placering på
> Ubuntu til en tilsvarende placering på webserveren.
Hvad der er nemmest kommer an på hvilke typer adgang du har til
webserveren. Jeg foretrækker at bruge et dvcs til den slags, men så er
det praktiskst med ssh-adgang.
Hvis du kun har ftp-adgang kan sitecopy måske være værd at kigge på:
* http://packages.ubuntu.com/lucid/sitecopy
(den synkroniserer mapper, så du ikke behøver trække den/de filer du har
ændret).
Mvh.
--
"Subdued flamboyance" Adam Sjøgren
asjo@koldfront.dk
| |
Kim Ludvigsen (15-07-2010)
| Kommentar Fra : Kim Ludvigsen |
Dato : 15-07-10 18:21 |
|
Den 15-07-2010 19:05, Adam Sjøgren skrev:
> On Thu, 15 Jul 2010 09:45:56 +0200, Kim wrote:
>
>> Jeg søger en nem metode til at overføre en fil fra dens placering på
>> Ubuntu til en tilsvarende placering på webserveren.
>
> Hvad der er nemmest kommer an på hvilke typer adgang du har til
> webserveren. Jeg foretrækker at bruge et dvcs til den slags, men så er
> det praktiskst med ssh-adgang.
Jeg har vist kun ftp (Gigahost og Surftown).
> Hvis du kun har ftp-adgang kan sitecopy måske være værd at kigge på:
Synkronisering kan desværre ikke bruges, da jeg kun skal
have overført udvalgte filer, ikke alle.
Jan Birk har foreslået et script, og hvis jeg kan få det til
at virke, er det en rimelig erstatning for funktionaliteten
i min OS/2, når jeg nu ikke kan opnå det samme.
--
Mvh. Kim Ludvigsen
Hjælp til computeren og internettet:
http://kimludvigsen.dk
| |
(Thorbjørn Ravn (15-07-2010)
| Kommentar Fra : (Thorbjørn Ravn |
Dato : 15-07-10 19:10 |
|
Kim Ludvigsen <usenet@kimludvigsen.dk> writes:
> Synkronisering kan desværre ikke bruges, da jeg kun skal have overført
> udvalgte filer, ikke alle.
Tillad mig at fraråde den fremgangsmåde. En lokal udgave der er
identisk med de filer der er på webserveren er en god ide.
--
Thorbjørn Ravn Andersen "... plus... Tubular Bells!"
| |
Kim Ludvigsen (15-07-2010)
| Kommentar Fra : Kim Ludvigsen |
Dato : 15-07-10 19:37 |
|
Den 15-07-2010 20:10, Thorbjørn Ravn Andersen, 20100715 skrev:
> Kim Ludvigsen<usenet@kimludvigsen.dk> writes:
>
>> Synkronisering kan desværre ikke bruges, da jeg kun skal have overført
>> udvalgte filer, ikke alle.
>
> Tillad mig at fraråde den fremgangsmåde. En lokal udgave der er
> identisk med de filer der er på webserveren er en god ide.
Jeg har backup på anden vis.
--
Mvh. Kim Ludvigsen
Effektiv forsvarsmetode ved sexoverfald:
http://ordforklaring.dk/ordforklaring.php?forklaring=modstandsbevaegelse
| |
(Thorbjørn Ravn (15-07-2010)
| Kommentar Fra : (Thorbjørn Ravn |
Dato : 15-07-10 18:57 |
|
Kim Ludvigsen <usenet@kimludvigsen.dk> writes:
> Jeg søger en nem metode til at overføre en fil fra dens placering på
> Ubuntu til en tilsvarende placering på webserveren.
Den absolut nemmeste måde er via rsync, men kræver at du har ssh-adgang
ind og at der er rsync på webserveren.
Hvis det SKAL gå via ftp, så findes der scripts der kan spejle via ftp.
Det vil spare dig bøvl i det lange løb, at du bare retter lokalt og så
spejler op.
--
Thorbjørn Ravn Andersen "... plus... Tubular Bells!"
| |
Adam Sjøgren (15-07-2010)
| Kommentar Fra : Adam Sjøgren |
Dato : 15-07-10 20:01 |
|
On Thu, 15 Jul 2010 19:21:19 +0200, Kim wrote:
>> Hvis du kun har ftp-adgang kan sitecopy måske være værd at kigge på:
> Synkronisering kan desværre ikke bruges, da jeg kun skal have overført
> udvalgte filer, ikke alle.
Jeg tror ikke helt jeg forstår dit argument - der er ingen der siger at
den mappe du spejler ud på webserveren behøver at indeholde andet end
præcis det, du gerne vil have liggende på webserveren.
Med sitecopy ville du i stedet for "kopiér fil X ud til webserveren",
have "kopiér fil X til lokal mappe; synkronisér".
> Jan Birk har foreslået et script, og hvis jeg kan få det til at virke,
> er det en rimelig erstatning for funktionaliteten i min OS/2, når jeg
> nu ikke kan opnå det samme.
Når du nu ikke kan finde ud af hvordan man opnår det samme
(Jeg ved ikke hvordan man laver et program der modtager navnene på de
filer man smider oven på dets ikon, men det lyder højest usandsynligt at
det ikke skulle være muligt).
Mvh.
Adam, som brugte ARexx med stor fornøjelse, i sin tid. Ahh, GCChost.
--
"It isn't modern just because it's electric. Country Adam Sjøgren
music was electric too." asjo@koldfront.dk
| |
Adam Sjøgren (15-07-2010)
| Kommentar Fra : Adam Sjøgren |
Dato : 15-07-10 20:17 |
|
On Thu, 15 Jul 2010 21:00:39 +0200, Adam wrote:
> (Jeg ved ikke hvordan man laver et program der modtager navnene på de
> filer man smider oven på dets ikon, men det lyder højest usandsynligt at
> det ikke skulle være muligt).
Ok, så kunne jeg alligevel ikke lade være med at prøve - et hurtigt
script i /tmp/:
,----[ /tmp/hep.sh ]
| #!/bin/sh
|
| zenity --info --text "$@"
`----
Højreklik på skrivebordet, vælg "Create Launcher...", skriv stien til
scriptet ind i "Command"-feltet (/tmp/hep.sh) og giv launcher'en et
"Name" (hep)¹.
Træk nu en fil over på "hep"-ikonet på desktoppen.
Voilà.
Mvh.
Adam
¹ Svarer til at oprette en executable fil i ~/Desktop/hep.desktop med
indholdet:
,----[ ~/Desktop/hep.desktop ]
| #!/usr/bin/env xdg-open
|
| [Desktop Entry]
| Version=1.0
| Type=Application
| Terminal=false
| Icon[en_GB]=gnome-panel-launcher
| Name[en_GB]=hep
| Exec=/tmp/hep.sh
| Name=hep
| Icon=gnome-panel-launcher
`----
--
"Det er jo bare punk, forklædt som Bubbers badekar!" Adam Sjøgren
asjo@koldfront.dk
| |
Martin Larsen (16-07-2010)
| Kommentar Fra : Martin Larsen |
Dato : 16-07-10 00:09 |
|
Kim Ludvigsen wrote:
> Jeg søger en nem metode til at overføre en fil fra dens placering på
> Ubuntu til en tilsvarende placering på webserveren.
En mulighed kunne være incron der kan sættes op til at "lytte" til
ændringer i en eller flere mapper, og udføre en passende kommando i den
anledning. Altså i stil med crontab, blot ikke periodisk.
I dit tilfælde kunne der så køres et simpelt script der tjekker
filnavnet og derefter uploader til serveren hvis det er en af de rigtige
filer.
http://inotify.aiken.cz/?section=incron&page=why&lang=en
| |
Kim Ludvigsen (17-07-2010)
| Kommentar Fra : Kim Ludvigsen |
Dato : 17-07-10 11:05 |
|
Der har været flere forslag til scripts ellrr andre metoder.
Jeg undskylder, at jeg ikke har meldt tilbage. Det er ikke
fordi, jeg ikke er interesseret, tværtimod. Men jeg har
været nødt til at starte forfra med Mint i stedet for Ubuntu
(problemer med netforbindelsen), så jeg får først tid til at
se nærmere på forslagene om nogle dage.
--
Mvh. Kim Ludvigsen
Det nemmeste komma:
http://ordforklaring.dk/ordforklaring.php?forklaring=decimalkomma
| |
|
|