Linux ist ein unglaublich umfangreiches System mit sehr vielen und netten
Überraschngen, Features und Möglichkeiten. Einige von den, die
uns aufgefallen sind und die wir selbst nutzen, wollen wir auf dieser Seite
zusammenfassen. Es gibt sehr viele Bereiche wo man mit sehr kleinen Einsatz
viel erreichen kann und das soll hier der Schwerpunkt sein. Die Tips wurden
nach Themen sortiert.
Die Tips sind als Vorschläge zu sehen, sicherlich gibt es bessere
Methoden um ans Ziel zu gelangen, aber das eine oder andere hier beschriebene
Tip könnte vielleicht so manchen auf eine Idee bringen.
mail.* /dev/tty10 news.* /dev/tty11 *.*;mail.none;news.none /dev/tty12[zurück]
# # for automatically send a mail if any other users logged in # if [ "$LOGNAME" = "root" -o "$LOGNAME" = "petersob" -o "$LOGNAME" = "news" ];then # only show who is logged in echo -------------------------------------------- who echo -------------------------------------------- else who >~/.msg /bin/mail -s "$LOGNAME is logged in" root <~/.msg wall .msg rm ~/.msg fi[zurück]
alias dir='ls -FCx' alias ll='ls -al' alias l='ls -l' alias cls='tput clear' alias exit='tput clear; logout;' alias ..='cd ..' alias rd=rmdir alias md=mkdir alias which='type -p'[zurück]
#!/bin/sh # # this script converts the g3 fax file in pbm and send this as MIME to # user spicified by MAILTO. 1998 by Peter Sobisch. # # Syntax: new_fax <hup> <sender-id> <no of pages> <file> [ <file>...] # PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin HUP="$1" # hangup error code: 0=OK SENDER="$2" # caller id, given by remote fax PAGES="$3" # total number of pages STRETCH="" # default no stretch P=0 # reset count TMP=/tmp/fax$$ # set temp name cp /dev/null $TMP.ps # init temp file MAILTO="petersob@comm.lamepage.de" # send mail to FILEPAR="-f $TMP.pdf -m application/pdf -e base64" # how to encaps. file shift 3 # now expose only the file names for FILE in $*; do P=`expr $P + 1` # set counter RES=`basename $FILE | sed 's/.\(.\).*/\1/'` # extract resolution [ "$RES" = "n" ] && STRETCH="-s" g32pbm $STRETCH $FILE 2>/dev/null | pnmtops >>$TMP.ps # convert to ps done ps2pdf $TMP.ps $TMP.pdf # convert ps dokument to pdf FILENAME=`echo $FILE | cut -f1 -d.` # cut the index and set filename metasend -b $FILEPAR -t $MAILTO -s "Fax from $SENDER: $PAGES pages" -S 5000000 rm $TMP.ps $TMP.pdf # remove tmp files exit 0Die Variable MAILTO muss natürlich die eigene Empfängeradresse eingetragen werden.
/usr/local/httpd/cgi-bin/isdnrep:
#!/bin/sh isdnrep -v -w1 $*Nach dem Erzeugen der Batchdatei müssen noch die Ausführrechte gesetzt werden:
chmod a+x /usr/local/httpd/cgi-bin/isdnrepJetzt kann man sich eine einfache HTML Seite basteln mit einem Link auf diesen Script, der HTML Code dafür könnte wie folgt aussehen:
... <a href="/cgi-bin/isdnrep?-w1">ISDN Report</a> ...Beim Anklicken des Links bekommt man jetzt eine Übersicht über die einzelnen Verbindungen und deren Zeitangaben. In der von isdnrep erzeugten HTML Seite sind bereits Links für das Zurück- und Vorblättern von Tagen und Monaten, so daß man sich sehr leicht die Übersicht über alle ISDN-Aktivitäten verschaffen kann (Gespräche und Datenanrufe).
#ip-up <interface> <device> <speed> <local-ip> <remote-ip> <ipparam>oder
#ip-down <interface> <device> <speed> <local-ip> <remote-ip> <ipparam>Wobei <ipparam> ein Parameter ist, der mit pppd ipparam <parameter> übergeben werden kann. Durch die Auswertung der Parameter kann man in Abhängigkeit von zB der Baudrate: Traffic-Intensiven Downloads ausführen oder über verschiedene IP´s die Einstellungen vornehmen. Alle in den beiden Scripts ausgeführten Programme oder Aktionen werden als root durchgeführt, so wenn ein spezieller User gefragt ist muss man sich mit su behelfen. Auf die Weise lassen sich in Abhängigkeit von den Parametern entsprechende Aktionen einleiten. Beispiel:
if [ "$6" = "spool" ]; then su <user> -c sendmail -q su <user> -c ´fetchmail -f /home/<user>/.fetchmailrc´ su news -c /var/lib/news/suck/news ppp-off fiDer Script ppp-spool sieht dann folgendermaßen aus (die richtigen Einstellungen in /etc/ppp/options und /etc/ppp/pap-secrets für eine funktionierende Onlineverbindung vorrausgesetzt):
/usr/sbin/pppd /dev/modem name mylogin connect "/etc/ppp/dial 123456" ipparam spool[zurück]
echo -e "\007" 1>/dev/tty10 2>/dev/tty10Denkbar wäre auch das Abspielen einer Sounddatei, wobei man daran denken sollte sie im Hintergrund abzuspielen (<command> &) damit der ip-up Script nicht aufgehalten wird.
ip-up:
echo -n "$(date +"%d.%m.%Y %H:%M:%S") - " >>/etc/ppp/online-time echo -n "$(date +"%d.%m.%Y %H:%M:%S") - " 2>&1 1>/dev/tty10ip-down:
echo "$(date +"%d.%m.%Y %H:%M:%S")" >>/etc/ppp/online-time echo "$(date +"%d.%m.%Y %H:%M:%S")" 2>&1 1>/dev/tty10Bei jeder Einwahl wird nun ein String in das Terminal /dev/tty10 und in die Datei /etc/ppp/online-time reingeschrieben:
13.12.1999 18:37:36 -Auf ein RETURN Zeichen wird hier verzichtet, so daß beim Auflegen die Offline-Zeit hinten drangehängt wird:
13.12.1999 18:37:36 - 13.12.1999 19:25:30Die so protokolierte Zeiten lassen sich einfach mit einem Script auswerten. calc ist ein Shell Script das awk zur einfachen Kalkulation benutzt. Es werden nur die Zeilen, die vollsändig sind, ausgewertet. calc rechnet lediglich die Zeiten zusammen und zählt die Anzahl der Verbindungen.
calc:
#!/bin/sh
#
# calc by Peter Sobisch
#
case $* in
-d) PARAM=`/bin/date +%d.%m.%Y`;;
-m) PARAM=`/bin/date +%m.%Y`;;
-y) PARAM=`/bin/date +%Y`;;
-?|-h|--help) echo "calc [-d|-m|-y|<pattern>]"
echo "Calculates online times and count of connections"
echo
exit;;
*) PARAM="$*";;
esac
grep "$PARAM" /etc/ppp/online-time | awk 'BEGIN { total=0 }
NF == 5 {
n=split($1,d,".")
date1=(d[1]+d[2]*30+d[3]*365)
n=split($2,t,":")
time1=(t[1]*3600+t[2]*60+t[3])
n=split($4,d,".")
date2=(d[1]+d[2]*30+d[3]*365)
n=split($5,t,":")
time2=(t[1]*3600+t[2]*60+t[3])
time=(date2-date1)*3600*24+time2-time1
total=total+time
}
END \
{
hours = total / 3600
print NR" connects, "hours" hours, (= "total" seconds)"
}'
Man kann als Parameter -d (den heutigen Tag) -m für den aktuellen
Monat und -y für das aktuelle Jahr sowie ein beliebigen String nach
dem gesucht werden soll. So kann zB einfach durch die Eingabe von:
calc 12.1999die Anzahl und Länge der Verbindungen im Dezember 1999 bestimmt werden:
116 connects, 11.8047 hours, (= 42497 seconds)Wird kein Parameter angegeben, rechnet calc alle Verbindungen die in der online-time Datei protokolliert sind zusammen. calc wurde geschrieben um auf eine einfache Weise die Onlinezeiten und die Verbindungszahl zu bestimmen.
################################################################### ### Ruleset 94 -- convert envelope names to masqueraded form ### ################################################################### S94 #R$+ $@ $>93 $1 R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2nachher:
################################################################### ### Ruleset 94 -- convert envelope names to masqueraded form ### ################################################################### S94 R$+ $@ $>93 $1 #R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2[zurück]
Section "Keyboard" Protocol "Standard" AutoRepeat 500 5 XkbLayout "de" XkbVariant "nodeadkeys" XkbModel "pc102" EndSectionWichtig sind hierbei der XkbModel und XkdVariant Eintrag !
# chvt 1 SVGATextMode 0 chvt 7 #wobei die Ausführrechte von SVGATextMode für die ensprechenden User vorhanden sein müßten. Es wird beim Start von X-Windows auf die Text-Console umgeschaltet und die Frequenz mit SVGATextMode "nachgesetzt" daher keine Panik wenn das Bild kurz flackert.