Oletetaan että minulla on ohjelma "prog" joka tuottaa silloin tällöin datatietueen joka pitää siirtää toiselle palvelimelle salattuna. Voin kirjoittaa sen omalle koneelle vaikkapa tiedostoksi 'record.dat' johonkin hakemistoon ja sen jälkeen erikseen kopioida tämän tietueen omalta koneelta secure copylla eli scp:llä lopulliseen kohteeseen tähän tyyliin:
scp /home/proj/logger/data/record.dat username@targetserver:/home/datarecords/
Voiko tämän omalle koneelle kirjoittamisen ohittaa jotenkin näppärästi niin että ohjelma "prog" kirjoittaisi tiedoston suoraan lopulliseen paikkaan hyödyntäen olemassa olevaa scp-ohjelmaa?
scp /home/proj/logger/data/record.dat username@targetserver:/home/datarecords/
Voiko tämän omalle koneelle kirjoittamisen ohittaa jotenkin näppärästi niin että ohjelma "prog" kirjoittaisi tiedoston suoraan lopulliseen paikkaan hyödyntäen olemassa olevaa scp-ohjelmaa?
Vastaukset 13
Vanhimmat
Liitä etäkoneen hakemisto omaan kotihakemistoosi sshfs:llä.
sshfs kayttaja@etäkone:/hakemisto /liitospiste
Kun vielä laittaa tunnistautumisen avainparilla niin salasanaakaan ei tarvita.
Liitos puretaan
fusermount -u
komennolla.
Koneeni ei tunne komentoa sshfs. Olen joskus kuullut fusesta, mutta mitään kokemusta siitä ei ole. Lopullinen sovellus johon tuo tulisi, on vaatimaton sulautettu laite jossa sitä ei ainakaan ole. (Jollei käännä fusea kyseisen laitteen prosessorille ja asenna.)
Ajattelin että ratkaisu voisi ehkä olla jonkinlainen putkitus? Täytyy miettiä lisää.
Asenna paketti sshfs ja asia on sillä selvä. Toisessa päässä ei tarvitse tehdä mitään koska siellä pyöriikin jo sshd.
Se sshfs pitäisi luultavasti kääntää omaan laitteeseen sorsista asti, sillä clinetin päässä olevassa koneessa on erilainen prosessori mitä yleensä pöytäkoneissa käytetään. (Ristikääntäjä on.) ssh siinä on valmiina.
Toisessa päässä serverinä tulee olemaan asiakkaan kone joka on madollisesti Windows kone. Siitä minulla ei ole tällä hetkellä tarkempaa tietoa. Vai onko scp vain Linux koneissa oleva komento? Tai tarkemmin sanonen ymmärtääkö Windows kone dataa joka kopioidaan siihen Linuxin scp-komennolla? Tällä hetkellä ainoa alustava tieto jota minulla on, on että data pitää siirtää secure copylla asiakkaan koneeseen. Mitään muuta en tiedä - vielä. Saattaa se asiakkaan serveri olla myös Linux.
Jos käytän asiakkaan palvelimen levyaseman mounttausta omaan koneeseen sshfs:llä, niin onko tämä systeemi asiakkaan näkökulmasta identtinen sen kanssa että suoritan komennon "scp record.dat username@yourserver:/home/yourusername/"
>> onko scp vain Linux koneissa oleva komento?
Oletin vain että käytät jotain valmista jakelua. Kyseessä taitaakin olla sitten muunlainen härveli. Näissä on yleensä hyvin niukasti muistia ja siksi käytetään valmistajan omia virityksiä.
Scp tarvitsee joka tapauksessa tiedoston, joka sitten kopioidaan. Pitäisi kyllä toimia kaikissa systeemeissä.
Sshfs ei tuota välivarastoa olisi tarvinnut koska käytetään suoraan toisen koneen levytilaa. Siis kirjoitetaan suoraan etäkoneen levylle kuin se olisi omassa masiinassa. Sshfs:n toimivuutta en tiedä mikäli serveripäässä on Windows.
Yksi syy siihen miksi haluan välttää paikallista tiedostoa on se että tässä laitteessa on "levyasemana" flash-muisti. Flash muistihan ei ole ikuista vaan kuluu "puhki" jos se on riittävän kovassa käytössä. (Ts. sinne kirjoitetaan pitkiä aikoja tiuhaan tahtiin.) En tiedä onko se käytännössä ongelma.
Ongelmaa ei tietenkään olisi, jos tiedoston saisi jotekin RAM-muistiin. (Sähkökatkos hävittäisi tiedoston, mutta se ei olisi ongelma tässä tapauksessa.)
http://en.wikipedia.org/wiki/Tmpfs
Siinä ratkaisu ja tiedosto on muistissa ;) Linkistä sitten selviää tarkemmin..
mount -t tmpfs -o size=1G,nr_inodes=10k,mode=0700 tmpfs /jossain
tuon sitten voi muutella systeemin rajoitukset huomioiden.
Kiitos!
Hienoa jos onnistui. Kysy toki lisää jos tuossa on jotain hankaluutta niin ihmetellään sitten yhdessä lisää miten se onnistuisi :)
Kokeilin äsken tuota sulautetussa Linuxissa.
Ei mitään ongelmia. Itseasiassa vähemmätkin parameterit riitti:
mount -t tmpfs none /var/ramdisk -o size=1m
Ja varmistus sille että data oli todellakin rammissa käy niin että virta hetkeki pois ja sen jäkeen katsotaan että hävisikö kaikki data hakemistosta /var/ramdisk. Hävisi, eli data oli rammissa eikä flashissa.
rammissa :) Ite käytän muutaman läppärin kans samaa kikkaa ja esim. selaimen cache ym. paska menee rammiin ja kovalevy pitää turpansa kiinni jolloin virtaa säästyy :)
Tietenkin se vie muistia, joten sitä pitää olla. Tosin harvemmin sitä läppäriä akun varassa mihinkään tunteja kestävään videoeditointiin tms. käytetään :P