<?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>zInformatik &#187; Scripte</title>
	<atom:link href="http://zinformatik.de/tag/scripte/feed/" rel="self" type="application/rss+xml" />
	<link>http://zinformatik.de</link>
	<description>Computer, Informatik und Mikrocontroller Blog</description>
	<lastBuildDate>Fri, 23 Jul 2010 21:22:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>zBot &#8211; ein Jabber Bot in Perl</title>
		<link>http://zinformatik.de/tipps-tricks/interessante-programme/zbot-ein-jabber-bot-in-perl/</link>
		<comments>http://zinformatik.de/tipps-tricks/interessante-programme/zbot-ein-jabber-bot-in-perl/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 19:55:36 +0000</pubDate>
		<dc:creator>zimon</dc:creator>
				<category><![CDATA[Interessante Programme]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Bot]]></category>
		<category><![CDATA[Jabber]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Scripte]]></category>

		<guid isPermaLink="false">http://zinformatik.de/?p=565</guid>
		<description><![CDATA[<p>(English version below)</p>
<p>Nachdem ich mich nun etwas mit <a href="http://zinformatik.de/allgemeines/jabber-die-offene-alternative-zu-icq-und-msn/" title="Jabber - die offene Alternative zu ICQ und MSN" target="_blank" class="liinternal">Jabber</a> beschäftigt habe, war es an der Zeit, einen eigenen Jabber Bot zu schreiben.</p>
<p>Ich hatte bereits einen ChatBot in Perl geschrieben, der in unserem http-Chat lief. Mit der CPAN Bibliothek <a href="http://search.cpan.org/~toddr/Net-Jabber-Bot-2.0.8/lib/Net/Jabber/Bot.pm" title="Jabber Bot CPAN Bibliothek" target="_blank" class="liexternal">Net::Jabber::Bot</a>&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>(English version below)</p>
<p>Nachdem ich mich nun etwas mit <a href="http://zinformatik.de/allgemeines/jabber-die-offene-alternative-zu-icq-und-msn/" title="Jabber - die offene Alternative zu ICQ und MSN" target="_blank" class="liinternal">Jabber</a> beschäftigt habe, war es an der Zeit, einen eigenen Jabber Bot zu schreiben.</p>
<p>Ich hatte bereits einen ChatBot in Perl geschrieben, der in unserem http-Chat lief. Mit der CPAN Bibliothek <a href="http://search.cpan.org/~toddr/Net-Jabber-Bot-2.0.8/lib/Net/Jabber/Bot.pm" title="Jabber Bot CPAN Bibliothek" target="_blank" class="liexternal">Net::Jabber::Bot</a> lies sich daraus mit wenigen Handgriffen ein einfacher Jabber Bot basteln.</p>
<p>Der Bot ist noch nicht sehr ausgereift. Aber er funktioniert.</p>
<p>Der Bot hat ein Pluginsystem um einfach neue Funktionen hinzufügen zu können. Um neue Plugins zu schreiben am besten mal ins Helloworld Plugin schauen (plugins/Helloworld.pm). Wichtig ist, das Plugin mit der Funktion Plugins::registerPlugin zu registrieren. Das fertige Plugin kann man ins Verzeichnis &#8220;plugins&#8221; kopieren. Jeder Befehl ist ein Plugin.</p>
<p>zBot läuft im Multi User Chat (MUC) und man kann ihn genauso gut als Kontakt hinzufügen.</p>
<p>Die Installation ist recht einfach. Man legt einen neuen User für den Bot auf dem Server seiner Wahl an. Dann editiert man die Datei modules/Configs.pm entsprechend (Passwort, Username&#8230; setzen). Danach kann man (wenn das CPAN Modul installiert ist) die zbot.pl starten. Am besten natürlich auf einem Server, damit der Bot auch online ist, wenn man den PC ausschaltet. Den Prozess kann man direkt in den Hintergrund schieben um sich wieder abmelden zu können:</p>
<p>./zbot.pl &amp;</p>
<p>Nun kann man den Bot zu seiner Kontaktliste hinzufügen. Nach dem Start braucht der Bot 20 Sekunden zur Initialisierung, bis er antwortet.</p>
<p>Durch das Senden des Befehls &#8220;hilfe&#8221; werden alle Befehle angezeigt. Mit &#8220;hilfe &lt;befehl&gt;&#8221; bekommt man die Beschreibung des Plugins angezeigt (z.B. &#8220;hilfe helloworld&#8221;).</p>
<p>Das Programm habe ich unter der <a href="http://www.gnu.org/licenses/gpl-2.0.html" title="GPL" target="_blank" class="liexternal">GPL</a> veröffentlicht. Eine Dokumentation ist auch vorhanden.</p>
<p>Über Verbesserungen des Codes oder neue Plugins würde ich mich sehr freuen.</p>
<p>Bei Fragen oder Problemen kann man mich natürlich auch gerne anschreiben (oder einfach hier als Kommentar).</p>
<p><strong>Update</strong>: Das Problem mit den Sonderzeichen konnte ich lösen. Es lag daran, dass die Sonderzeichen in der CPAN Bibliothek durch einen regulären Ausdruck ausgefiltert wurden (der dazu gedacht war, nicht druckbare Zeichen auszufiltern). Daher habe ich die entsprechende Datei ins Verzeichnis &#8220;modules&#8221; kopiert, entsprechend editiert und von dort eingebunden.</p>
<p><strong>Update:</strong> Version 0.2 ist nun verfügbar. Informationen über die Änderungen findet man im <a href="http://zinformatik.de/tipps-tricks/interessante-programme/jabber-bot-zbot-in-version-02/" title="Jabber Bot zBot in Version 0.2" target="_self" class="liinternal">zugehörigen Blogeintrag</a>.</p>
<p><strong>[UPDATE]</strong> Es gibt ein Problem ab ejabberd Version 2.0.3, da diese eine digest-uri zur Verifikation des Clients erwartet. Die einzige Möglichkeit das Problem zu lösen besteht anscheinend darin, diese Verifikation im Quelltext abzuschalten und neu zu kompilieren. Mehr Infos gibt es in <a href="http://www.ejabberd.im/node/3545" tile="Forenthread zum digest-uri Problem" target="_blank" class="liexternal">diesem Forenthread</a> (englisch).</p>
<p>Des weiteren gibt es ein Problem mit manchen User- bzw. Domainnamen. Der Bot bricht dann mit der Meldung:</p>

<div class="wp_syntax"><div class="code"><pre class="plain" style="font-family:monospace;">Can't call method &quot;isa&quot; without a package or object reference at /usr/local/share/perl/5.8.8/Net/XMPP/Protocol.pm line 2471.</pre></div></div>

<p> ab. (Die Zeile kann variieren)<br />
Abhilfe schafft das entfernen des &#8220;problematischen&#8221; Users aus der Liste des Bots. Der User kann den Bot danach immer nocht nutzen (so weit mir berichtet wurde). Anscheinend tritt das Problem auf, wenn der Username mit einer Ziffer beginnt (oder eine Ziffer enthält, das weis ich nicht).<br />
Vielen Dank an Daniel für die Hinweise und die Hilfe bei der Fehlersuche <img src='http://zinformatik.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> <strong>[/UPDATE]</strong></p>
<p><strong>[UPDATE]</strong>Ich habe den Bot jetzt mal auf GitHub hochgeladen: <a href="http://github.com/zimon/zBot" target="_blank" class="liexternal">http://github.com/zimon/zBot</a>. In der dortigen Version ist er auch an die neue Version von Net::Jabber::Bot angepasst. Leider funktionieren dadurch einige Plugins nicht mehr richtig, aber ich habe im Moment keine Zeit sie zu fixen. Vielleicht hat ja jemand Lust zu forken <img src='http://zinformatik.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <strong>[/UPDATE]</strong></p>
<p><span>Man kann den Bot gerne testen, indem man ihn zu seiner Kontaktliste hinzufügt: <a href="mailto:bruno@jey-key.de" class="linkifyplus">bruno@jey-key.de</a></span></p>
<p><span>Die Dokumentation ist nun auch online Verfügbar: <a href="http://zinformatik.de/zbotdoc/index.html" title="Dokumentation zBot Version 0.2" target="_blank" class="liinternal">Dokumenation Version 0.2</a><br />
</span></p>
<p><strong>Dateien</strong></p>
<ul>
<li><a href="http://zinformatik.de/wp-content/uploads/2009/02/zbot_02.zip" class="lizip">zbot_0.2.zip</a> &#8211; Das Programm (the program)</li>
<li><a href="http://zinformatik.de/wp-content/uploads/2009/02/zbot_02_doc.zip" class="lizip">zbot_0.2_doc.zip</a> &#8211; Die Dokumentation (the documentation)</li>
</ul>
<p><strong>Plugins</strong></p>
<ul>
<li><a href="http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/chatbot-plugin-fur-den-zbot/" title="Chatbot Plugin für den zBot" target="_blank" class="liinternal">Chatbot Plugin</a> &#8211; erweitert den zBot um die Möglichkeit &#8220;Unterhaltungen&#8221; mit dem Bot zu führen.</li>
<li><a href="http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/wikipedia-plugin-fur-den-zbot/" title="Wikipedia Plugin für den zBot" target="_blank" class="liinternal">Wikipedia Plugin</a> &#8211; fügt den Befehl &#8220;wiki&#8221; hinzu, mit dem die Definition (der erste Abschnitt des Artikels) zu einem Begriff angezeigt werden kann.</li>
<li><a href="http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/leo-dictionary-englisch-deutsch-ubersetzungs-plugin-fur-den-zbot/" title="Leo Übersetzungsplugin (Englisch &lt;-&gt; Deutsch) für den zBot" target="_self" class="liinternal">Leo Dictionary Plugin</a> &#8211; Deutsch &lt;-&gt; Englisch Übersetzungsplugin</li>
<li><a href="http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/wetter-plugin-fur-den-zbot/" title="Wetter Plugin für den zBot" target="_self" class="liinternal">Wetter Plugin</a> &#8211; macht eine Wettervorhersage für eine angegebene Postleitzahl</li>
<li><a href="http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/todo-plugin-fur-den-zbot/" title="Todo Plugin für den zBot" target="_self" class="liinternal">Todo Plugin</a> &#8211; verwaltet für jeden User eine Todoliste mittels <a href="http://todotxt.com" title="Todo.sh Homepage" target="_blank" class="liexternal">todo.sh</a></li>
<li><a href="http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/whois-plugin-fur-den-zbot/" title="Whois Plugin für den zBot" target="_self" class="liinternal">Whois Plugin</a> &#8211; Macht eine Whois-Abfrage zu einer gewünschten Domain und liefert das Ergebnis zurück.</li>
</ul>
<p><span style="color: #ffffff;">.</span></p>
<p><strong>English</strong></p>
<p>Here is my Jabber Bot &#8220;zBot&#8221; written in Perl using the CPAN Module <a href="http://search.cpan.org/~toddr/Net-Jabber-Bot-2.0.8/lib/Net/Jabber/Bot.pm" title="Jabber Bot CPAN Library" target="_blank" class="liexternal">Net::Jabber::Bot</a>.</p>
<p>It is easily extendable with plugins. If you want to write a plugin just look at the modules/Helloworld.pm (I commented this example Plugin better than the other ones). Its important to register your Plugin by calling the function Plugins::registerPlugin in your module. When it&#8217;s finished just copy it to the plugins directory. Every command is a plugin.</p>
<p>zBot runs in multi user chats (MUC) and you can add it to your contact list.</p>
<p>I started writing the bot yesterday, so it is not tested well but it works.</p>
<p>To install and start the bot, register a new account for the bot. Then edit the modules/Configs.pm to your needs (password, username,&#8230;) and start the zbot.pl (don&#8217;t forget to install the CPAN module first). It&#8217;s a good idea to start it on a server with</p>
<p>./zbot &amp;</p>
<p>so it stays online when you shut down your own computer. Now you can add the bot to your contact list. After the start the bot needs 20 seconds for initializing before it answers.</p>
<p>By sending &#8220;hilfe&#8221; to the bot it sends a list of available commands. With &#8220;hilfe &lt;command&gt;&#8221; you get the description of the plugin (for example: &#8220;hilfe helloworld&#8221;).</p>
<p>The bot is licenced under <a href="http://www.gnu.org/licenses/gpl-2.0.html" title="GPL" target="_blank" class="liexternal">GPL</a>. An english documentation is available.</p>
<p>All strings in the Code are in german language but the comments and documentation is english. I wrote an english translation as comment after (or below) each string, so it should be easy to translate.</p>
<p>It would be grate if you send me your plugins and enhancements of the code if you create some.</p>
<p><strong>[UPDATE]</strong>I have uploaded the bot on GitHub: <a href="http://github.com/zimon/zBot" target="_blank" class="liexternal">http://github.com/zimon/zBot</a>. There it is adapted to the new Net::Jabber::Bot version. By doing this some of the Plugins broke and I don&#8217;t have time to fix them. Maybe someone wants to fork it <img src='http://zinformatik.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <strong>[/UPDATE]</strong></p>
<p>For questions or problems you may contact me.</p>
]]></content:encoded>
			<wfw:commentRss>http://zinformatik.de/tipps-tricks/interessante-programme/zbot-ein-jabber-bot-in-perl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Backup per FTP mit Tartarus</title>
		<link>http://zinformatik.de/tipps-tricks/interessante-programme/backup-per-ftp-mit-tartarus/</link>
		<comments>http://zinformatik.de/tipps-tricks/interessante-programme/backup-per-ftp-mit-tartarus/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 22:17:47 +0000</pubDate>
		<dc:creator>zimon</dc:creator>
				<category><![CDATA[Interessante Programme]]></category>
		<category><![CDATA[Sicherheit und Datenschutz]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[Konsole]]></category>
		<category><![CDATA[Scripte]]></category>

		<guid isPermaLink="false">http://zinformatik.de/?p=554</guid>
		<description><![CDATA[<p>Bisher war der <a href="http://zinformatik.de/allgemeines/server-down-wegen-stromausfall-bei-hetzner/" title="Stromausfall bei Hetzner" target="_self" class="liinternal">Stromausfall am Donnerstag</a> das einzige mal seit ich dort Kunde bin, dass etwas bei Hetzner nicht in Ordnung war. Jedoch habe ich es mir zum Anlass genommen, meine Backupstrategie zu überdenken.</p>
<p>Bisher nutzte ich selbstgeschriebene Bash Scripte und wollte diese erweitern, doch dann stieß ich auf Tartarus.</p>
<p>Tartarus ist ein opensource&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Bisher war der <a href="http://zinformatik.de/allgemeines/server-down-wegen-stromausfall-bei-hetzner/" title="Stromausfall bei Hetzner" target="_self" class="liinternal">Stromausfall am Donnerstag</a> das einzige mal seit ich dort Kunde bin, dass etwas bei Hetzner nicht in Ordnung war. Jedoch habe ich es mir zum Anlass genommen, meine Backupstrategie zu überdenken.</p>
<p>Bisher nutzte ich selbstgeschriebene Bash Scripte und wollte diese erweitern, doch dann stieß ich auf Tartarus.</p>
<p>Tartarus ist ein opensource Bash Script, welches komplette sowie inkrementelle Backups von beliebigen Ordnern machen kann. Auch LVM Snapshots sind möglich. Warum also Zeit in Scripten, Testen und Debuggen investieren (es soll ja auch zuverlässig sein), wenn es schon eine fertige und erprobte Lösung gibt&#8230;</p>
<p>Die Konfiguration lässt sich einfach über verschiedene Konfigurationsdateien steuern wodurch Änderungen schnell umgesetzt werden können.</p>
<p>Die Sicherung erfolgt wahlweise zu einem FTP-Server oder in ein Verzeichnis. Man kann jedoch noch andere Möglichkeiten nutzen indem man entsprechende Funktionen in den Konfigurationsdateien erstellt. In der Dokumentation ist ein Beispiel für ssh.</p>
<p>Die Verzeichnisse werden mit tar gepackt und wahlweise mit bzip2 oder gzip komprimiert. Zusätzlich kann noch mit GnuPG synchron oder asynchron verschlüsselt werden.Verzeichnisse, die nicht mit ins Backup sollen kann man über eine Liste ausschließen.</p>
<p>Die Verwendung von Standardbefehlen wie tar oder bzip finde ich sehr Vorteilhaft, da sie auf fast jedem (Linux) System verfügbar sind. Zur Übertragung per FTP wird curl genutzt.</p>
<p>Mit dem Zusatzscript charon kann man ältere Backups auch leicht wieder vom Backup-Server löschen. Dies kann man sogar als sogenannten &#8220;Hook&#8221; nach der Erstellung des neuen Backups automatisch ausführen lassen. Dabei löscht charon nur  Backups, die älter als eine vorgegebene Anzahl von Tagen sind.</p>
<p><strong>Links:</strong></p>
<ul>
<li>Tartarus Homepage: <a href="http://wertarbyte.de/tartarus.shtml" title="Tartarus Webpage" target="_blank" class="liexternal">http://wertarbyte.de/tartarus.shtml</a></li>
<li>Installations- und Konfigurationsanleitung im Hetzner Wiki: <a href="http://wiki.hetzner.de/index.php/Tartarus_Backup-Konfiguration" title="Hetzner Wiki - Tartarus" target="_blank" class="liexternal">http://wiki.hetzner.de/index.php/Tartarus_Backup-Konfiguration</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://zinformatik.de/tipps-tricks/interessante-programme/backup-per-ftp-mit-tartarus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox Erweiterung &#8211; NoScript</title>
		<link>http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/firefox-erweiterung-noscript/</link>
		<comments>http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/firefox-erweiterung-noscript/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 12:12:31 +0000</pubDate>
		<dc:creator>zimon</dc:creator>
				<category><![CDATA[Plugins und Erweiterungen]]></category>
		<category><![CDATA[Sicherheit und Datenschutz]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Scripte]]></category>

		<guid isPermaLink="false">http://zinformatik.de/?p=119</guid>
		<description><![CDATA[<p>NoScript ist eine Firefox Erweiterung, die den Umgang mit Scripten erleichtert.</p>
<p>Es wird immer wieder darauf hin gewiesen, dass man möglichst JavaScript, Java, Flash,&#8230; abschalten sollte um die Sicherheit zu erhöhen. Gerade XSS Attacken werden in letzter Zeit immer häufiger. Doch leider benutzt mittlerweile fast jede Seite irgendwelche Scripte, so dass das grundsätzliche Ausschalten von Scripten nur für die wenigsten&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>NoScript ist eine Firefox Erweiterung, die den Umgang mit Scripten erleichtert.</p>
<p>Es wird immer wieder darauf hin gewiesen, dass man möglichst JavaScript, Java, Flash,&#8230; abschalten sollte um die Sicherheit zu erhöhen. Gerade XSS Attacken werden in letzter Zeit immer häufiger. Doch leider benutzt mittlerweile fast jede Seite irgendwelche Scripte, so dass das grundsätzliche Ausschalten von Scripten nur für die wenigsten in Frage kommt.</p>
<p>Hier setzt NoScript an und platziert ein Icon in die Statusleiste. Gleichzeitig werden alle Scripte unterbunden. Nun kann man über das Icon ein Kontextmenü aufrufen um die aktuelle Domain (und alle Domains die Scripte auf der aktuellen Seite ausführen wollen) einer Whitelist hinzuzufügen oder sie temporär zu erlauben. Diese Aktion läd auch gleichzeitig die Seite neu, so dass die Scripte darauf gleich mit geladen werden. (z.B. XSS Attacken werden jedoch weiterhin geblockt)</p>
<p>Dadurch hat man die Sicherheit von deaktivierten Scripten, kann sie für einzelne Seiten jedoch schnell wieder anschalten. Natürlich wird das Surfvergnügen dadurch ein wenig beeinflusst, aber ich finde dass es einen guten Kompromiss zwischen Sicherheit und Nutzbarkeit darstellt. Gerade für Windows User halte ich dieses Plugin schon fast für Pflicht.</p>
<p>Auch Heise empfiehlt immer wieder, diese Erweiterung zu nutzen:</p>
<ul>
<li><a href="http://www.heise.de/security/dienste/browsercheck/anpassen/firefox/02.shtml" title="Sicherheitseinstellungen von Firefox anpassen" target="_blank" class="liexternal">Sicherheitseinstellungen von Firefox anpassen</a></li>
<li><a href="http://www.heise.de/security/news/meldung/108560" target="_blank" class="liexternal">Kritische Schwachstelle im Flash Player wird aktiv ausgenutzt</a></li>
<li><a href="http://www.heise.de/security/Passwortklau-fuer-Dummies--/artikel/94100" target="_blank" class="liexternal">Passwortklau für Dummies</a></li>
<li><a href="http://www.heise.de/security/Clickjacking-Jeder-Klick-im-Browser-kann-der-falsche-sein--/news/meldung/117055" target="_blank" class="liexternal">Clickjacking: Jeder Klick im Browser kann der falsche sein</a></li>
<li><a href="http://www.heise.de/security/QuickTime-reisst-Sicherheitsleck-in-Firefox-auf--/news/meldung/95909" target="_blank" class="liexternal">QuickTime reißt Sicherheitsleck in Firefox auf</a></li>
</ul>
<p>Das Plugin kann bei den <a href="https://addons.mozilla.org/de/firefox/addon/722" title="Mozilla Adons" target="_blank" class="liexternal">Mozilla Adons</a> herunter geladen werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/firefox-erweiterung-noscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
