Diverse |
|||||||||||
|
Hva du finner på denne siden!
På denne siden finner du tips om forskjellige nyttige unix-kommandoer som ikke faller naturlig in på noen av de andre sidene. Det kan i praksis være alt mulig rart, så det er bare å lete igjennom og se om det er noe som passer for deg! Ssh tunnel
Av og til har man behov for å kunne koble seg til en maskin som befinner seg
bak en brannmur på en eller annen måte. For eksempel kan du tenke deg at du har
satt opp en linux maskin for noen som ikke er så kjempeflinke i linux, og de
ønsker å ha den stående hjemme, hengende på en adsl-forbindelse og gjerne
NAT'et bak en trådløs router. Hvordan kan man løse en slik utfordring? En fin
mulighet er å sette opp en ssh-tunnel fra maskin til en annen maskin som du
alltid kan nå. En slik tunnel kan settes opp med følgende kommando:
ssh -f -N -R *:20022:localhost:22 -lbrukernavn maskin.fastip.net
Opsjonene har følgende betydning: -f: Tving ssh til å kjøre i bakgrunn. -N: ssh skal ikke starte noen spesiell kommando på maskinen man kobler til. Uten denne opsjonen vil et shell bli forsøkt startet. -R: angir tunnel fra annen maskin. Alle maskiner (*) som forsøker å koble seg til maskinen vi kobler oss til, på port 20022, vil bli sendt videre til denne maskinen (localhost) på port 22, der ssh som regel kjører. -l: angir brukernavn vi vil benytte for å koble oss til Endelig oppgis maskinen med fast ip som vi vil koble oss til. For å ta vare på sikkerheten er det nok lurt å definere en spesiell bruker for formålet, og passord/passphrase må håndteres på en passende måte. Det er også en del utfordringer med å holde forbindelsen oppe. Dersom adsl-systemet får en dynamisk adresse (som er bakgrunnen for hele denne løsningen), vil tunnellen måtte restartes dersom adsl-systemet får en ny adresse. Man er selvfølgelig også avhengig av å ha tilgang til en maskin med fast ip.
Som kjent opererer unix med en mengde prosesser for å kjøre de programmene
brukeren ber om. Vær prosess blir tilordnet en entydig identitet (såkalt PID).
Jeg skal ikke gå særlig i dybden her, for det kan jeg ikke. Men av og til har
vi behov for å finne ut om et bestemt program kjører, for eksempel et program
som benyttes i client-server samenheng, eller i forbindelse med kommunikasjon
på annen måte. For å sende signaler til prosesser kan vi benytte
killall -0 netscapeHvis en slik prosess finnes, vil en ikke-null verdi bli returnert.
pgrep, pkill
To nyttige program som du kanskje har installert på maskinen din er pgrep og pkill. Disse programmene lar deg automatisk finne PID for applikasjoner som oppfyller forskjellige kriterier, for eksempel at de kjører som en gitt bruker, eller at applikasjonsnavnet matcher et gitt uttrykk. pgrep lister opp PID'ene, mens pkill sender et signal til prosessene, default er TERM (15), som forsøker å avslutte (drepe) prosessen. Eksempler på bruk kan være:
pgrep -u <brukernavn> <program>
program som kjøre som
gitt bruker, den andre dreper alle prosesser som du har lov til å drepe - og
som matcher gitt program
Av og til er det nyttig å sjekke hva retur-verdien av siste kommando var,
selvom vi ikke har tilordnet en variabel denne verdien. Det kan gjøres enkelt i
Vi kan av og til ha behov for å finne ut hvilke programmer som er starte fra
hvilke, det vil si et tre av prosesser. Vi kan enkelt lage et slik tre, i ascii
form, ved hjelp av ps og opsjonen "f". Hvis vi også putter på opsjonen "w" får
vi et fint bilde, prøv for eksempel
Man-sider på bok-form
Av og til øsnker du kanskje å skrive ut en man-side på en hendig form for å kunne lese i ro og mak når du en sjelden gang beveger deg bort fra maskinen din. Samtidig vil vi gjerne spare skogen så mye som mulig, så kompirmert form er bra. Som regel er mansidene lagret på komprimert form, så vi pakker ut først: gunzip -c <manpage-file> | groff -mandoc | psbook | psnup -2 | lpr -Pprinter
På noen systemer kan du erstatte de to første kommandoene med man -t <manpage>, dette skriver man-siden på std.ut.
| ||||||||||