Åpne filen /etc/syslog.conf og legg til denne linjen:
# Dumpe loggene til /dev/tty8
*.* /dev/tty8
Viktig: HUSK Å BRUKE TABS! syslog liker ikke vanlige mellomrom.
dj@destin.nfds.net
Fra en nybegynner til en annen, her har du et lite skript som lar deg mye enklere enn før lete etter og se på howto dokumenter. Mine HOWTOs ligger i /usr/doc/faq/howto/ og er alle pakket med gzip. Filnavnene er XXX-HOWTO.gz, hvor XXX er subjektet. Jeg laget det følgende skriptet ('howto') i /usr/local/sbin/ katalogen:
#!/bin/sh
if [ "$1" = "" ]; then
ls /usr/doc/faq/howto | less
else
gunzip -c /usr/doc/faq/howto/$1-HOWTO.gz | less
fi
Når programmet blir kjørt uten et argument, vil det vise filene i katalogen
hvor howtoene ligger. Når argumentet er subjektet, derimot, vil howtoen
pakke seg selv opp og vises på skjermen.
For å se på Serial-HOWTO.gz f.eks, er det bare til å skrive:
$ howto Serial
zocki@goldfish.cube.net
Her er et lite skript som fra tid til annen vil sjekke om det er nok plass igjen på enheter som er montert på filsystemet (harddisk, cdrom, floppy osv.)
En melding vil bli skrevet til skjermen samt 1 e-post beskjed vil bli sendt hvis en enhet er full.
#!/bin/sh
#
# $Id: check_hdspace,v 1.18 1996/12/11 22:33:29 root Exp root $
#
#
# Jeg skrev dette skriptet for å få en advarsel før diskene ble
# fulle.
#
# Hvis skriptet reddet serverne dine fra å gå amok, kan du sende
# en takke-epost til zocki@goldfish.cube.net. Hvis maskinene dine
# blir ødelagt på et eller annet vis pga. dette programmet, er jeg
# overhodet ikke ansvarlig.
#
#
# Putt 'check_hdspace &' i rc.local. Det vil sjekke om du har nok
# ledig plass på enhetene dine hvert $SLEEPTIME sekund. Du kan faktisk
# sjekke dine disketter og tapekassetter.
# Hvis den ledige plassen går under minimumet, $MINFREE kB, vil det
# komme frem en advarselsbeskjed om hver enhet som er i faresonen.
# En mail vil også bli sendt til $MAIL_TO_ME variablen.
# Hvis det plutselig blir mer plass igjen enn minimumet, så vil
# skriptet gjøre seg klar til å maile igjen.
#
# TODO: Different $MINFREE for each device.
# Free /*tmp dirs securely from old junk stuff if no more free space.
DEVICES='/dev/sda2 /dev/sda8 /dev/sda9' # enhet; putt enheter her
MINFREE=20480 # kB; minimum ledig plass
SLEEPTIME=10 # sec; vente 10 sek. mellom
# hver sjekk
MAIL_TO_ME='root@localhost' # her sendes mailen til
# ------- forhåpentligvis er forandringer under denne linjen unødvendige -------
MINMB=0
ISFREE=0
MAILED=""
let MINMB=$MINFREE/1024
while [ 1 ]; do
DF="`/bin/df`"
for DEVICE in $DEVICES ; do
ISFREE=`echo $DF | sed s#.\*$DEVICE" "\*[0-9]\*""\*[0-9]\*" "\*## | sed s#" ".\*##`
if [ $ISFREE -le $MINFREE ] ; then
let ISMB=$ISFREE/1024
echo "ADVARSEL: $DEVICE har bare $ISMB MB ledig." >&2
#echo "hva du vil kan stå her" >&2
echo -e "\a\a\a\a"
if [ -z "`echo $MAILED | grep -w $DEVICE`" ] ; then
echo "ADVARSEL: $DEVICE har bare $ISMB MB ledig.. (Trigger is set to $MINMB mb)" \
| mail -s "ADVARSEL: $DEVICE har bare $ISMB MB ledig!" $MAIL_TO_ME
MAILEDH="$MAILED $DEVICE"
MAILED=$MAILEDH
# her kan du sette inn hva du vil, f.eks
# kommandoer som rydder opp i */tmpkataloger
fi
elif [ -n "`echo $MAILED | grep -w $DEVICE`" ] ; then
# Gjøre klart for ny aksjon hvis plass
# tar slutt igjen
MAILEDH="`echo $MAILED | sed s#$DEVICE##`"
MAILED=$MAILEDH
fi
done
sleep $SLEEPTIME
done
Hvis du er lik meg, har du sikkert en mailingliste med 430 medlemmer + 100
beskjeder som kommer inn hver dag gjennom UUCP. Hva gjør egentlig en hacker
med disse enorme loggene som blir til? Svaret er enkelt nok å installere
chklogs.
Chklogs er skrevet av Emilio Grimaldo, grimaldo@panama.iaehv.nl
. Den
nyeste versjonen (1.8) finnes på ftp.iaehv.nl:/pub/users/grimaldo/chklogs-1.8.tar.gz.
Det er temmelig selvforklarende å installere programmet og jeg antar at du
leser filene i doc/ katalogen. Etter du har installert chklogs, kan du legge
inn denne entryen i crontab:
# Kjør chklogs hver dag klokken 21:00
00 21 * * * /usr/local/sbin/chklogs -m
Nå som du er i gang, kan du godt sende en mail til forfatteren av chklogs om
hvor godt du liker programmet osv..
ohammers@cu-online.com
Lag en fil ved navn 'rmcores' (også kalt 'handle-cores') og sett de følgende linjene inn:
#!/bin/sh
USAGE="$0 <katalog> <beskjed-fil>"
if [ $# != 2 ] ; then
echo $USAGE
exit
fi
echo Sletter...
find $1 -name core -atime 7 -print -type f -exec rm {} \;
echo Sender e-post...
for name in `find $1 -name core -exec ls -l {} \; | cut -c16-24`
do
echo $name
cat $2 | mail $name
done
La deretter en cron jobb kjøre skriptet regelmessig hvis du ønsker det.
A.Cox@swansea.ac.uk
En rask måte på å flytte et helt katalogtre med filer fra en disk til en annen.
(cd /kilde/katalog && tar cf - . ) | (cd /dest/katalog && tar xvfp -)
[ Gå ut av /kilde/katalog/ for å forhindre muligheten for at katalogen
kan bli ødelagt. Takk til Jim Dennis, jim@starshine.org, som tipset meg om
det -Maint. ]
mick@lowdown.com
Har du noensinne lurt på hvilke kataloger på harddisken din som er størst? Her er ihvertfall måten du kan finne Det ut på.
du -S | sort -n
Mange takk går til John Fisk, skaperen av Linux Gazette. Linux Gazette er et utmerket elektronisk magasin og i tillegg er det helt gratis! Hva mer kan man be om? Du finner det på:
http://www.linuxgazette.com
PS: Det ser nå ut som at Linux Gazette blir gitt ut som et månedtlig
magasin og at John Fisk har sluttet å vedlikeholde magasinet, folka fra SSC
har overtatt den jobben.
stern@amath.washington.edu
Jeg er ikke sikker på om mange har dette problemet, men det er en "del" av GNU
Make versjon 3.70 som jeg ikke liker. Det er det at VPATH oppfører seg rart
hvis det blir gitt et fullstendig "Path"-navn. Det finnes en effektiv patch
mot dette problemet. Den kan du få hos Paul D. Smith <psmith@wellfleet.com>
.
Han pleier også å poste dokumentasjon og patcher til hver korrigert versjon
av GNU Make på nyhetsgruppen "gnu.utils.bug". Vanligvis pleier jeg
å installere denne patchen og rekompilere gmake på hvert system jeg har
tilgang til.
dal@wimsey.com
Q: Hvordan stopper jeg e2fsck i å sjekke harddisken min hver gang jeg booter opp?
A: Når du rekompilerer kjernen blir filsystemet automatisk merket som 'skittent'. Derfor blir kjernen overbevist om at den må sjekke disken hver gang du booter opp. Løsningen er å kjøre:
rdev -R /zImage 1
PS: Hvis du bruker LILO, vennligst legg til read-only
til din lilo konfigurasjonsfil (vanligvis /etc/lilo.conf)
jon@gtex02.us.es
Hvis du ofte får beskjeder om at enheten (devicet) er opptatt når du rebooter systemet vil programmet fsck bli kjørt neste gang du startet systemet. Her er en løsning:
Legg til den følgende linjen i /etc/rc.d/init.d/halt
eller /etc/rc.d/rc.0
mount -o remount,ro /mount.katalog
/mount.katalog kan være alle dine monterte filsystem unntatt /. Disse kommandoene vil bli kjørt før 'mount -a' er kjørt. Dette betyr at hvis shutdown mislykkes i å drepe alle prosesser og avmontere disker vil diskene likevel være 'rene' neste gang du booter. Jeg sparer ihverfall mye tid.
Simon Amor, simon@foobar.co.uk
ls -l | sort +4n
Eller hvis du ønsker, kan du bruke denne kommandoen istedet (tar litt lengre tid):
cd /
ls -lR | sort +4n
mdickey@thorplus.lib.purdue.edu
#!/bin/sh
# /usr/local/bin/print
# Formattere dokumentet slik at noen kan hulle arket
# og putte det i en trehullsmappe
cat $1 | pr -t -o 5 -w 85 | lpr
rockwell@nova.umd.edu
Jeg kaller skriptet 'forall'. Bruk det slik som vist nedenfor.
forall /usr/include grep -i ioctl
forall /usr/man grep ioctl
Here er 'forall':
#!/bin/sh
if [ 1 = `expr 2 \> $#` ]
then
echo Usage: $0 katalog kommando [argumenter]
exit 1
fi
dir=$1
shift
find $dir -type f -print | xargs "$@"
tolnas@nestor.engr.utk.edu
Her er et enkelt skript som går gjennom katalogtre og fjerner emacs sine autosave (#) og backup (~) filer, .o filer og TeX .log filer. Det komprimerer også .tex filer og README filer. Skriptet heter 'squeeze'.
#!/bin/sh
# SQUEEZE fjerner unødvendige autosave, backup, .log filer osv. + mer
# Av Barry tolnas, tolnas@sun1.engr.utk.edu
#
echo squeezing $PWD
find $PWD \( -name \*~ -or -name \*.o -or -name \*.log -or -name \*\#\) -exec
rm -f {} \;
find $PWD \( -name \*.tex -or -name \*README\* -or -name \*readme\* \) -exec gzip -9 {} \;
simon@foobar.co.uk
ps -aux | sort +4n
-ELLER-
ps -aux | sort +5n
Tips-HOWTO Vedlikeholder
Mye av min tid bruker jeg på å programmere i C, derfor har jeg tatt meg tid til å optimalisere vi til å være C vennlig. Her er .exrc filen min:
set autoindent
set shiftwidth=4
set backspace=2
set ruler
Hva gjør dette? Jo, autoindent får vi til å lage et automatisk innrykk som er på samme kolonne som begynnelsen av det siste ordet. Shiftwidth setter lengden til ^T til 4 mellomrom, backspace setter vi i backspace-mode og ruler får vi til å vise linjenummer. Husk at hvis du vil komme til linje 20, bruk denne enkle kommandoen:
vi +20 minfil.c
De fleste hackere har som regel ctags på systemet sitt, men bruker det ikke. Det kan være veldig nyttig for spesielle redigeringsfunksjoner. La oss si at man har en funksjon i en av mange kildekode filer i en katalog for et program du utvikler. Denne funksjonen kan vi kalle foo(). Du vet heller ikke hvor funksjonen ligger i kildekoden. Det er her ctags begynner å bli nyttig. Når ctags er kjørt, vil det produsere en fil ved navn tags i den nåværende katalogen. Tags er en liste over alle funksjoner, hvilke filer de ligger i og hvor de ligger i disse filene. Slik ser tags filen ut:
ActiveIconManager iconmgr.c /^void ActiveIconManager(active)$/
AddDefaultBindings add_window.c /^AddDefaultBindings ()$/
AddEndResize resize.c /^AddEndResize(tmp_win)$/
AddFuncButton menus.c /^Bool AddFuncButton (num, cont, mods, func, menu, item)$/
AddFuncKey menus.c /^Bool AddFuncKey (name, cont, mods, func, menu, win_name, action)$/
AddIconManager iconmgr.c /^WList *AddIconManager(tmp_win)$/
AddIconRegion icons.c /^AddIconRegion(geom, grav1, grav2, stepx, stepy)$/
AddStartResize resize.c /^AddStartResize(tmp_win, x, y, w, h)$/
AddToClientsList workmgr.c /^void AddToClientsList (workspace, client)$/
AddToList list.c /^AddToList(list_head, name, ptr)$/
La oss si hvis du vil inn å se på funksjonen AddEndResize i vim, kjør kommandoen:
vim -t AddEndResize
Denne kommandoen vil vise filen som innehaver funksjonen i vim med markøren
plassert akkurat der funksjonen er.
paul@geeky1.ebtech.net
Det er et ganske vanlig problem, så svaret kunne godt ha vært i en FAQ. Jeg vet ikke om RedHat har fikset feilen, men du kan heldigvis reparere det selv. Hvis du titter i /etc/hosts filen din ser sikkert noe som dette:
127.0.0.1 localhost dinmaskin
Når sendmail startes, vil det søke etter domenet ditt (i dette eksemplet, dinmaskin). Ettersom sendmail ikke liker at dinmaskin har IP adresse 127.0.0.1, vil den prøve å søke igjen. Sendmail fortsetter med dette helt til det gir opp og avslutter. Å fikse på dette problemet er veldig enkelt; Åpne /etc/hosts filen din og forandre innholdet til noe lignende:
127.0.0.1 localhost
10.56.142.1 yourbox
paul@geeky1.ebtech.net
RedHat distribusjonen kommer med color-ls, men de har likevel ikke konfigurert den, og det er noe jeg ikke skjønner. For å fikse det, gjør slik:
Først: skriv eval `DIRCOLORS`
Deretter: alias ls='ls --color=auto'
Sett inn 'alias.....' linjen i /etc/bashrc filen din
vps@unicorn.niimm.spb.su
Hva om du kompilerer noe og du har glemt et library som trenger å linkes med programmet? Alt GCC rapporterer er funksjonsnavn. Her en et kommando som finner hva du leter etter:
for i in *; do echo $i:;nm $i|grep tgetnum 2>/dev/null;done
Hvor tgetnum er navnet på funksjonen du leter etter.
Jeg vedder på at du har kompilert programmet som en binærfil ved navn test. Linux har allerede et program som heter test, som sjekker om en spesiell filtilstand er sann eller falsk. Det produserer aldri noe på skjermen. For å kjøre ditt eget test program, skriv: ./test istedet.