# Nützliche bash Skripte



## Aiju (10. Januar 2006)

Ich wollte in diesem Thread in paar nützliche Shell Skripte online stellen.
webmail, mini E-Mail Versender (mit SMTP-after-POP):
Verwendung: Starten, Header und Nachricht eingeben

```
#!/bin/bash

to=`cat | grep "To:" |  awk -F ':' '{print $2}'`
text=`cat`
smtp='smtp.domain.tld'
pop='pop.domain.tld'
user='nutzername'
pw='passwort'
yourmail='nutzername@provider.tld'

# Mit pop.web.de verbinden (Authentifizierung)
netcat $pop 110 <<END
user $user
pass $pw
list
quit
END

netcat $smtp 25 <<END_MAIL
MAIL FROM:<$yourmail>
RCPT TO:<$to>
DATA
To: $to
$text
.
END_MAIL
```
Beispiel:

```
webmail
To: sonstwen@sonstwo.tld
From: Mir
Subject: webmail Programm

Cool 
.
```
Zum Schluß Strg+D drücken zum Versenden, das Programm lässt sich gut in Programme wie Vim einbinden.
EDIT: Das Programm liest jetzt die E-Mail Adresse aus dem Header, danke RedWing


----------



## RedWing (10. Januar 2006)

Zur Einbindung in vim siehe auch:

http://www.tutorials.de/forum/showthread.php?p=1215300#post1215300



Gruß

RedWing


----------



## Dennis Wronka (11. Januar 2006)

Ich hab 3 kleine Scripts die mir hier auf der Arbeit etwas Arbeit abnehmen.

php-apache2.sh
Dieses Script ist fuer die Konfiguration von PHP zustaendig, da ich keine Lust hab bei jeder neuen Version von PHP nachzusehen welche Optionen ich denn nun zum kompilieren genutzt hab.


```
./configure --prefix=/usr --disable-all --enable-safe-mode \
--with-apxs2=/usr/local/apache2/bin/apxs --with-bz2=/usr --enable-ftp \
--with-gd=/usr/local --with-gettext=/usr --with-imap=/usr/local/imap-2004e \
--enable-mbstring --with-mcrypt=/usr/local --with-mhash=/usr --with-mssql=/usr/local \
--with-mysql=/usr --with-openssl=/usr --with-pcre-regex --enable-posix \
--enable-session --enable-sockets --with-zlib=/usr
```
Ist im Grunde halt nur ein Einzeiler, aber wie man sieht kann er einem doch einiges an Tipperei abnehmen und Tippfehler und somit Nerven sparen.
Das selbe hab ich auch nochmal fuer Apache 1.

emu-net.sh
Da ich schonmal QEmu nutze um mal Windows im Fenster zu starten hab ich dieses kleine Script geschrieben welches den Zugang zum Internet an- und abstellen kann.


```
case $1 in
enable)
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
;;
disable)
echo 0 > /proc/sys/net/ipv4/ip_forward
iptables -F POSTROUTING -t nat
iptables -F FORWARD
;;
esac
```

switchphp.sh
Ich hab zum Testen auch noch PHP4 installiert, damit ich ohne grosse Komplikationen zwischen PHP4 und PHP5 umschalten kann hab ich mir dieses kleine Script gebaut.


```
case $1 in
php4)
cp /usr/lib/php4.ini /usr/lib/php.ini
cp /usr/bin/php4 /usr/bin/php
cp /usr/local/apache/conf/httpd-php4.conf /usr/local/apache/conf/httpd.conf
cp /usr/local/apache2/conf/httpd-php4.conf /usr/local/apache2/conf/httpd.conf
/etc/rc.d/rc.httpd stop
/etc/rc.d/rc.httpd start
;;
php5)
cp /usr/lib/php5.ini /usr/lib/php.ini
cp /usr/bin/php5 /usr/bin/php
cp /usr/local/apache/conf/httpd-php5.conf /usr/local/apache/conf/httpd.conf
cp /usr/local/apache2/conf/httpd-php5.conf /usr/local/apache2/conf/httpd.conf
/etc/rc.d/rc.httpd stop
/etc/rc.d/rc.httpd start
;;
esac
```
Ja, ich hab 2 Apachen laufen, einer ist die Produktionsumgebung und der andere die Testumgebung.

Ansonsten nutz ich auch schonmal PHP in der Shell, es muss ja nicht immer im Web-Server laufen.


----------



## Sinac (11. Januar 2006)

Ich hab in ner VM ein kleines Debian zum Testen und Spielen laufen. Unter anderem läuft die Kiste ab und zu mal als Test Router zwischen 2 Netzen. Darum habe ich mir ein kleines Script geschrieben, dass die Netzwerkkarten hochfährt, das NAT Module lädt und das iptables Routing aktiviert:


```
ifup eth0
ifup eth1
modprobe iptables_nat
iptables -t nat -a POSTROUTING -o eth0 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward
```

Ist nix großes aber besser als das jedes Mal selber zu aktivieren


----------



## Dennis Wronka (12. Januar 2006)

Ich war mal so frei das Thema zu teilen.
Falls jemand was vermisst so sollte es hier zu finden sein.


----------

