<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AnB-Networkz &#187; script</title>
	<atom:link href="http://anb-networkz.de/tag/script/feed/" rel="self" type="application/rss+xml" />
	<link>http://anb-networkz.de</link>
	<description>Die Farben der Technik</description>
	<lastBuildDate>Fri, 30 Dec 2011 19:59:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>&#8220;screen&#8221; Sitzung beim Login über SSH starten oder fortsetzen</title>
		<link>http://anb-networkz.de/2011/10/screen-sitzung-beim-login-uber-ssh-starten-oder-fortsetzen/</link>
		<comments>http://anb-networkz.de/2011/10/screen-sitzung-beim-login-uber-ssh-starten-oder-fortsetzen/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 13:22:00 +0000</pubDate>
		<dc:creator>Andre</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[bashrc]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[terminal]]></category>

		<guid isPermaLink="false">http://anb-networkz.de/?p=989</guid>
		<description><![CDATA[Screen, ein kleines Programm um mehrere virtuelle Terminals in einer bestehenden Sitzung zu starten ist gerade in Verbindung mit SSH sehr nützlich. Bricht zum Beispiel während der Installation von Updates die SSH Sitzung ab, läuft screen trotzdem weiter und kann &#8230; <a href="http://anb-networkz.de/2011/10/screen-sitzung-beim-login-uber-ssh-starten-oder-fortsetzen/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Screen, ein kleines Programm um mehrere virtuelle Terminals in einer bestehenden Sitzung zu starten ist gerade in Verbindung mit SSH sehr nützlich. Bricht zum Beispiel während der Installation von Updates die SSH Sitzung ab, läuft screen trotzdem weiter und kann nach dem Wiederaufbau der SSH Verbindung neu verbunden werden. Alle Prozesse innerhalb der screen Sitzung bzw. der im virtuellen VT100 Terminal gestarteten Shell laufen ohne Unterbrechung weiter.</p>
<p>Leider vergisst man meist bei Arbeiten &#8220;die mal schnell&#8221; erledigt werden sollten eine Screen-Sitzung z starten. Interessanterweise brechen auch genau dann immer die SSH Verbindungen ab. Murphy lässt grüßen <img src='http://anb-networkz.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Also sollte man nicht lange nachdenken ob man eine screen-Sitzung startet sondern sollte es einfach nur tun <img src='http://anb-networkz.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Und das am besten automatisch beim Anmelden über SSH.</p>
<p>Einige schreiben hier immer wieder sehr komplexe Scripte oder starten screen vom SSH Daemon. Ich persönlich finde das alles überflüssig. Eigentlich muss nur geprüft werden ob die Shell über SSH gestartet wurde und ob die aktuelle Shell gerade in einem Screen-Term läuft. Letzteres ist wichtig um keine Schleife zu verursachen.</p>
<p>Für screen selbst sollten noch die Parameter für UTF-8 (auf allen neueren Distributionen Standard) und das automatische Fortsetzen bereits bestehender Sitzungen hinzugefügt werden. Der Parameter x für MultiDisplay/MultiUser Mode ist auch ganz nützlich.</p>
<p>Soll doch mal eine Sitzung ohne screen gestartet werden, sollte dies ebenfalls berücksichtigt werden. Eine interessanterweise sehr einfache Methode (echo / sleep) habe ich neulich auf einer LAN-Party gesehen (Thx Outi) und auch gleich so übernommen.</p>
<p>Aber nun zum Script. Der folgende Code führt hinzugefügt an die bashrc des Benutzers (oder Systems) genau diese Schritte aus.</p>
<pre class="wp-code-highlight prettyprint">if [[ -e $SSH_TTY ]] &amp;&amp; [[ $TERM != screen ]]; then
        echo Starting or resuming screen session
        echo Press CTRL+C to cancel screen startup
        sleep 2
        screen -UxR;
fi</pre>
]]></content:encoded>
			<wfw:commentRss>http://anb-networkz.de/2011/10/screen-sitzung-beim-login-uber-ssh-starten-oder-fortsetzen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dropbox als Server unter Linux einrichten</title>
		<link>http://anb-networkz.de/2011/10/dropbox-als-server-unter-linux-einrichten/</link>
		<comments>http://anb-networkz.de/2011/10/dropbox-als-server-unter-linux-einrichten/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 19:27:13 +0000</pubDate>
		<dc:creator>Andre</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[sync]]></category>

		<guid isPermaLink="false">http://anb-networkz.de/?p=980</guid>
		<description><![CDATA[Ich nutze seit einiger Zeit für weniger wichtige Dateien den Storage Provider Dropbox. Dieser bringt ein kleines Tool um Dateien mit dem Windows oder Linux PC zu Synchronisieren mit. Auch Smartphone Apps sind verfügbar. Allerdings vermisse ich seit einiger Zeit &#8230; <a href="http://anb-networkz.de/2011/10/dropbox-als-server-unter-linux-einrichten/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ich nutze seit einiger Zeit für weniger wichtige Dateien den Storage Provider Dropbox. Dieser bringt ein kleines Tool um Dateien mit dem Windows oder Linux PC zu Synchronisieren mit. Auch Smartphone Apps sind verfügbar. Allerdings vermisse ich seit einiger Zeit die Möglichkeit, einen Ordner auf einem Linux-Server automatisch im Hintergrund abzugleichen. Das ist zum Beispiel ganz nützlich um diesen Ordner auch per Samba (CIFS/SMB) oder NFS im lokalen Netz freizugeben.</p>
<p>Nun habe ich nach einiger Recherche im Netz eine Möglichkeit gefunden, Dropbox als Service einzurichten. Das ganze ist im <a title="Dropbox Wiki" href="http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall">Dropbox-Wiki</a> sehr gut Dokumentiert.</p>
<p>Die dort verwendeten init Script verwenden allerdings Multiuser-Umgebungen. Auf einem Server ist es besser einen getrennten Benutzer anzulegen und Dropbox unter diesem zu starten. Der neue user dropbox mit dem Basedir /data/raid/dropbox soll dazu verwendet werden.Nach dem Anlegen des Benutzers muss der dropboxd einmalig unter diesem Benutzer gestartet und der Account aktiviert werden. Meine Anpassungen am Gentoo Script sehen wie folgt aus:</p>
<pre class="wp-code-highlight prettyprint">
#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Header: /var/cvsroot/gentoo-x86/sys-fs/dropbox/files/dropbox.init-1.0,v 1.4 2007/04/04 13:35:25 cardoe Exp $
NICENESS=5
DROPBOX_USER=&quot;dropbox&quot;
DROPBOX_HOME=&quot;/data/raid/dropbox&quot;
DROPBOX_BINARY=&quot;/opt/dropbox/dropboxd&quot;
DROPBOX_LOG=&quot;/var/log/dropbox_log&quot;
DROPBOX_ERR=&quot;/var/log/dropbox_err&quot;
depend() {
need localmount net
after bootmisc
}
start() {
ebegin &quot;Starting dropbox...&quot;
touch $DROPBOX_LOG
touch $DROPBOX_ERR
chown $DROPBOX_USER $DROPBOX_LOG $DROPBOX_ERR
start-stop-daemon -1 $DROPBOX_LOG -2 $DROPBOX_ERR -b -S -m --pidfile /var/run/dropbox.pid -o -N $NICENESS -u $DROPBOX_USER -v -e HOME=$DROPBOX_HOME -x $DROPBOX_BINARY
eend $?
}
stop() {
ebegin &quot;Stopping dropbox...&quot;
start-stop-daemon --stop --pidfile /var/run/dropbox.pid
eend $?
}
status() {
if [ -e /var/run/dropbox.pid ] ; then
echo &quot;dropboxd running.&quot;
else
echo &quot;dropboxd not running.&quot;
fi
eend $?
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://anb-networkz.de/2011/10/dropbox-als-server-unter-linux-einrichten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP &#8211; Shell Scripte mit root-rechten ausführen &#8211; sudo</title>
		<link>http://anb-networkz.de/2011/08/php-shell-scripte-mit-root-rechten-ausfuhren-sudo/</link>
		<comments>http://anb-networkz.de/2011/08/php-shell-scripte-mit-root-rechten-ausfuhren-sudo/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 21:57:20 +0000</pubDate>
		<dc:creator>Andre</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[sudo]]></category>

		<guid isPermaLink="false">http://anb-networkz.de/?p=909</guid>
		<description><![CDATA[Wie immer steht am Anfang eine Idee. Bei mir war es der Wunsch, vom Smartphone das kopieren der Speicherkarten meiner Kameras zu starten. Das ganze vollständig zu automatisieren war mir zu riskant, da ich schon noch zwischen Mounten (für Samba), &#8230; <a href="http://anb-networkz.de/2011/08/php-shell-scripte-mit-root-rechten-ausfuhren-sudo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wie immer steht am Anfang eine Idee. Bei mir war es der Wunsch, vom Smartphone das kopieren der Speicherkarten meiner Kameras zu starten. Das ganze vollständig zu automatisieren war mir zu riskant, da ich schon noch zwischen Mounten (für Samba), Kopieren und Verschieben der Dateien auf der Speicherkarte unterscheiden wollte.</p>
<p>Alles haben diese Befehle gemeinsam, man benötigt root-rechte zum Mounten und Auswerfen der Speicherkarten. Webserver mit root-rechten betreiben? suexec Modul von Apache nutzen? Alles zu riskant und viel zu kompliziert. Der einfachste weg ist es, ein Shellscript mit root-Berechtigungen vom Webserver aus zu starten. Und das geht am besten mit sudo.<code></code></p>
<p>Um das Script <code>/usr/local/sbin/webscript.sh</code> unter root rechten zu starten, muss zuerst der Webserver berechtigt werden, das Script unter root Rechten zu starten. Das geht in der Datei /etc/sudoers. Der Eintrag<br />
<code></code></p>
<p><code>apache ALL=(ALL) NOPASSWD: </code><code>/usr/local/sbin/webscript.sh</code></p>
<p>berechtigt den Benutzer apache von jedem Quellhost ohne zusätzliche Passworteingabe das Script auszuführen. Funktioniert das, sollte der Host auf localhost begrenzt werden.<br />
Anschließend kann das Script aus PHP mittels<br />
<code></code></p>
<p><code>system('sudo /usr/local/sbin/webscript.sh');</code></p>
<p>oder wenn die Ausgabe direkt im Browser ausgegeben werden soll mit<br />
<code></code></p>
<p><code>passtruh('sudo /usr/local/sbin/webscript.sh');</code></p>
<p>ausgeführt werden. erstellt man nun ein Shellscript das eine CF-Karte mountet, je nach Parameter die Dateien kopiert oder verschiebt und startet es per PHP vom webserver, kannd er Kopiervorgang von jedem http fähigen Gerät aufgerufen werden. So ist ein Szenario denkbar, vom Streaming-Radio mit RSS-Reader komplexe Scripte am Webserver auszuführen.</p>
]]></content:encoded>
			<wfw:commentRss>http://anb-networkz.de/2011/08/php-shell-scripte-mit-root-rechten-ausfuhren-sudo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bilder mit PHP skalieren &#8211; image-Funktionen</title>
		<link>http://anb-networkz.de/2011/07/bilder-mit-php-skalieren-image-funktionen/</link>
		<comments>http://anb-networkz.de/2011/07/bilder-mit-php-skalieren-image-funktionen/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 15:11:10 +0000</pubDate>
		<dc:creator>Andre</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[foto]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[scaler]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://anb-networkz.de/?p=885</guid>
		<description><![CDATA[Nachdem mich nun mehrere Leute nach einem Image Scaler für PHP fragten, und ja finestpics.de so etwas verwendet, habe ich dazu entschlossen ein kleines Script für genau dieses Problem zu veröffentlichen. Das Script lädt ein Bild in den Speicher, ermittelt &#8230; <a href="http://anb-networkz.de/2011/07/bilder-mit-php-skalieren-image-funktionen/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nachdem mich nun mehrere Leute nach einem Image Scaler für PHP fragten, und ja finestpics.de so etwas verwendet, habe ich dazu entschlossen ein kleines Script für genau dieses Problem zu veröffentlichen. Das Script lädt ein Bild in den Speicher, ermittelt Länge und Breite und skaliert das Bild auf die lange Seite ohne Verzerrung. Aber mehr dazu sollte jedem beim lesen des Quellcodes klar werden.</p>
<p>Für die ganze Skalierung werden die Image/gd Funktionen von PHP verwendet. Es sollte ab php4 funktionieren.</p>
<p><a title="Image Scaler" href="http://finestpics.de/scale.php" target="_blank">Hier gehts zum Script.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://anb-networkz.de/2011/07/bilder-mit-php-skalieren-image-funktionen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unterordner mit TAR differentiell sichern</title>
		<link>http://anb-networkz.de/2008/08/unterordner-mit-tar-differentiell-sichern/</link>
		<comments>http://anb-networkz.de/2008/08/unterordner-mit-tar-differentiell-sichern/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 00:58:41 +0000</pubDate>
		<dc:creator>Andre</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ordner]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[Sicherung]]></category>
		<category><![CDATA[tar]]></category>

		<guid isPermaLink="false">http://anb-networkz.de/?p=83</guid>
		<description><![CDATA[Auf einem System mit mehreren Benutzern sollten die Basisordner der Benutzer regelmäßig gesichert werden. Eine vollständige Sicherung kann gerade bei großen Ordnern sehr schnell sehr viel Speicherplatz belegen. Für diesen Fall wurden ja auch Inkrementelle und Differentielle Sicherungen erfunden. Ich &#8230; <a href="http://anb-networkz.de/2008/08/unterordner-mit-tar-differentiell-sichern/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Auf einem System mit mehreren Benutzern sollten die Basisordner der Benutzer regelmäßig gesichert werden. Eine vollständige Sicherung kann gerade bei großen Ordnern sehr schnell sehr viel Speicherplatz belegen. Für diesen Fall wurden ja auch Inkrementelle und Differentielle Sicherungen erfunden. Ich habe ein Script geschrieben, das die Basisordner, wenn noch keine vollsicherung vorhanden ist, vollständig sichert. Alle folgenden Sicherungen erstellen nur eine Differenzsicherung zur letzten Vollsicherung. Im Moment überschreibt das Script die letzte Differentielle Sicherung, da diese in meiner Umgebung auf einem zentralem Server täglich auf Band gesichert wird. Bei Bedarf sollte man an die Sicherungen evt. noch das aktuelle Datum anhängen oder ein Archivupdate durchführen, um das überschreiben zu verhindern. Das <a href="http://anb-networkz.net/wp-content/uploads/2008/08/sicherungsh.gz">Sicherungsscript</a> gibt es hier zum Download.</p>
<p style="text-align: center;">
[download#6#image]</p>
]]></content:encoded>
			<wfw:commentRss>http://anb-networkz.de/2008/08/unterordner-mit-tar-differentiell-sichern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DD-WRT Firewall rekonfiguration per script</title>
		<link>http://anb-networkz.de/2008/01/dd-wrt-startscript/</link>
		<comments>http://anb-networkz.de/2008/01/dd-wrt-startscript/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 15:27:41 +0000</pubDate>
		<dc:creator>Andre</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[dd-wrt]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[gäste]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://anb-networkz.de/?p=19</guid>
		<description><![CDATA[Gestern stand ich vor dem Problem einen Linksys WRT54GS Router als AP fÃ¼r ein Gast WLAN einzurichten. Es sollten nur bestimmte Ports und Protokolle zugelassen werden. Nichts leichter als das, dachte ich mir und wollte einfach Firewall-Regeln per Hand einfÃ¼gen. &#8230; <a href="http://anb-networkz.de/2008/01/dd-wrt-startscript/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Gestern stand ich vor dem Problem einen Linksys WRT54GS Router als AP fÃ¼r ein Gast WLAN einzurichten. Es sollten nur bestimmte Ports und Protokolle zugelassen werden. Nichts leichter als das, dachte ich mir und wollte einfach Firewall-Regeln per Hand einfÃ¼gen. In der Standart Firmware ist das aber sehr umstÃ¤ndlich wenn nicht sogar unmÃ¶glich. Also, dachte ich mir, ich flashe das GerÃ¤t mit DD-WRT und trage die erlaubten Dienste in der weboberflÃ¤che ein. Leider ist diese auch sehr beschrÃ¤nkt. Irgendwie hat aber das Regelwerk nicht richtig funktioniert. also habe ich in der OberflÃ¤che JFFS aktiviert, den SSH Dienst gestartet und unter /jffs/rules.sh ein Script mit ein Paar iptables aufrufen abgelegt.<span id="more-19"></span></p>
<p>#!/bin/sh<br />
# Firewall neu konfigurieren<br />
iptables -F<br />
iptables -A FORWARD -i br0 -i vlan1 -d 10.0.0.0/24 -j DROP<br />
iptables -A FORWARD -i br0 -p tcp &#8211;sport 1024: &#8211;dport 80 -m state &#8211;state NEW,ESTABLISHED -j ACCEPT<br />
iptables -A FORWARD -i br0 -p tcp &#8211;sport 1024: &#8211;dport 110 -m state &#8211;state NEW,ESTABLISHED -j ACCEPT<br />
iptables -A FORWARD -p tcp &#8211;dport 1024: -i vlan1 -m state &#8211;state ESTABLISHED,RELATED -j ACCEPT<br />
iptables -A FORWARD -p icmp -j ACCEPT<br />
iptables -P FORWARD DROP<br />
# webserver auf anderem Port starten<br />
kill $(pidof httpd)<br />
httpd -p 54321</p>
<p>Um das Script nun beim booten des WRT auszufÃ¼hren, muss es noch mit nvram set rc_costum=&#8221;/jffs/rules.sh&#8221; eingetragen werden.</p>
<p>Der Internet-Port ist mit einer Fritzbox verbunden, welche die Internetverbindung herstellt. diese liegt im Netzwerk 10.0.0.0/24. Der Linksys stellt DNS, DHCP und Routing-Dienste fÃ¼r das WLAN, welches im Netzwerk 10.0.1.0/24 liegt bereit. Somit kÃ¶nnen GÃ¤ste Webseiten aufrufen, Emails abrufen usw. aber keine ungewollten Dienste starten oder auf das Fritzbox-LAN zugreifen. ZusÃ¤tzlich mÃ¼ssen GÃ¤ste ein SchriftstÃ¼ck unterschreiben, in dem Sie sich verpflichten keine illegalen Dienste im Internet zu nutzen.</p>
<p>Falls es zu Problemen kommen sollte, kÃ¶nnte man zusÃ¤tzlich L7 regeln eintragen, um sicherzugehen das auf den erlaubten Ports auch wirklich die Protokolle verwendet werden, fÃ¼r die sie registriert sind. Da das aber sehr viel CPU-Last verursacht, werden diese erst bei Bedarf eingefÃ¼gt.</p>
]]></content:encoded>
			<wfw:commentRss>http://anb-networkz.de/2008/01/dd-wrt-startscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

