Planet
my new cheap green backup solution
This is my new backup solution
A sheevaplug computer running debian
And as storage an ICYBOX with a 500G sata disk
you don't get high bandwidths but for a backup storage this rules for home usage
At first I was trying to backup with rsync over ssh with blowfish
But this was to slow, I just get 50mbit
(ssh blowfish encryption was to heavy for this 1,2GHz arm processor)
so I decided to use rsync deamon
My backup is syncing now at 100mbit ;)
(I now rsync is not a backup, but I just want a copy in case of crash)
I also found that pulling the usb plug shuts down the harddisk
so I will check later to unload the usb after the backup has finished and when I got the time
It could save power

Microsoft IE Javascript support added
There, after spending a while figuring out why
if ( something.indexOf(select_groups[i]) == -1 ) {
threw an error; I was finally able to restore IE support. (poor misguided souls needn’t miss out on the Javascript goodies)
Apparently (Try to wrap your brain around this) the javascript version in IE doesnt support Array.indexOf()! All other browsers do, just not The Internet Explorer! (You can explore, but dont go in too far.) And I’m talking about IE8 here, not IE6..
More on that topic on this blog post “JavaScript Support and Array.indexOf in IE” (2008-08-13 – yes, 2008 and still its an issue!) The post also goes into the history; turning Mind boggling “WTF??” into “oh, MS is just being lazy”..
I did have to tinker slightly before it worked as expected; their solution returns nothing instead of -1 when no element was found. The solution is really simple
if (!Array.indexOf) {
Array.prototype.indexOf = function (obj, start) {
for (var i = (start || 0); i < this.length; i++) {
if (this[i] == obj) {
return i;
}
}
return -1;
}
}
and actually to be found in the last comment; though I only discovered that AFTER figuring this out myself. Took me a second to realize the code wasn't returning the -1 I needed for the rest of the code to do its jazz..
Xen bridge stays in listening state
When I rebooted a xen guest I had no network anymore
this was strange, all the other guests had no problem with networking
After checking some commands I saw that the bridge has a weard problem(lenny/xen/bridge)
dummy0 bridge id 8000.065a2bb7ed3a designated root 8000.065a2bb7ed3a root port 0 path cost 0 max age 0.00 bridge max age 0.00 hello time 2.00 bridge hello time 2.00 forward delay -150503672.24 bridge forward delay -150503672.24 ageing time 300.01 hello timer 0.98 tcn timer 0.00 topology change timer -143192091.79 gc timer -156558985.99 flags TOPOLOGY_CHANGE TOPOLOGY_CHANGE_DETECTED ====snip other interfaces=== vif51.0 (10) port id 800a state listening designated root 8000.065a2bb7ed3a path cost 100 designated bridge 8000.065a2bb7ed3a message age timer 0.00 designated port 800a forward delay timer -150504113.11 designated cost 0 hold timer 0.00 flags vif51.1 (11) port id 800b state listening designated root 8000.065a2bb7ed3a path cost 100 designated bridge 8000.065a2bb7ed3a message age timer 0.00 designated port 800b forward delay timer -150504113.11 designated cost 0 hold timer 0.00 flags
It looks like the bridge has lost some counters
Zynga uses Puppet to manage configuration of FarmVille’s web farm
Farmville is idd very popular, even my wife and parents are playing it, (I don't have time for this)
They are lucky that open-source exists coz there aren't so many tools to manage this scale of grow
If you see that after 4day's of the launch there ware more then 1.000.000 players ...
and after 60 day's 10.000.000
that is a fast grow
Thanx to luke there exists puppet
source
FOSDEM 2010
I visited FOSDEM this weekend. It was very interesting.
Had a nice chat with the MariaDB people and off course Zarafa. The talks where nice, though the one on Ubuntu and Debian was a bit controversial.
Next up is storage expo :-)
Fille@belgium 938KM
After the deredactie.be overflow there is also the "verkeerscentrum"(trafficcenter)

It seems that snow has a great snowball effect here :)
btw, I also failed to get to my customer today
After 1:15u I was 5km away from home (and still 20km to get to the customer)
have a nice day
deja-dup desktop backup
I've been messing with finding a decent desktop backup application this weekend to run on all the family laptops. I thought backintime would do the trick, but it turned out not to work over sshfs (due to the lack of hardlink support) and doing backups to the same disk that holds the data seems like a bad idea to me.
So, today I found an article on deja-dup in my RSS feed, installed it and it's wonderful. It has a built in scheduler and supports all filesystems that gvfs does, but adds nice things like encryption for your backups and it integrates very well with Nautilus.
I can just select a file or folder and revert it to the state of any of the listed backups, which is exactly the functionality I've been looking for.
Just a shame that I didn't find it in the first hours of looking... but I am happy now :-)
I'm giving a workshop on Zarafa
On 25 february, I'm giving a workshop on Zarafa, the open source alternative to MS Exchange.
If anyone is interested in signing up (for free), they can still do so at http://www.open-future.be/zarafa-workshop
Restore Amanda Backup
I'm writing this blogpost so I can quickly find the needed commands to restore a file from an amanda backup. Below is a procedure on how to extract the LocalSettings.php file. The /data/amanda/tapes is the directory where the virtual tapes are located. The host is backup, amanda org is Daily.
[root@backup backup]# amrecover Daily -s backup -t backup \
-d file:/data/amanda/tapes
AMRECOVER Version 2.5.0p2. Contacting server on backup ...
220 backup AMANDA index server (2.5.0p2) ready.
200 Access OK
Setting restore date to today (2009-12-02)
200 Working date set to 2009-12-02.
Scanning /data/amanda/holding...
200 Config set to Daily.
200 Dump host set to backup.vsco.be.
Trying disk / ...
Trying disk rootfs ...
Can't determine disk and mount point from $CWD '/backup'
amrecover>
ok now we can start by specifying which file is needed to restore.
amrecover> sethost web.vsco.be
200 Dump host set to web.vsco.be.
First the disk (you can view all disks with the command listdisk):
amrecover> setdisk /data
200 Disk set to /data.
amrecover> setdate 2009-11-30
200 Working date set to 2009-11-30.
amrecover> ls
2009-11-30 www/
2009-11-30 lost+found/
2009-11-30 home/
amrecover> cd www/wiki
/backup/data/www/wiki
Now add the file/files you want to restore (wildcars can be used)
amrecover> add LocalSettings.php
Added /www/wiki/LocalSettings.php
amrecover> extract
Extracting files using tape drive null: on host backup.
The following tapes are needed: Daily-005
Restoring files into directory /backup
Continue [?/Y/n]? Y
Extracting files using tape drive null: on host backup.
Load tape Daily-005 now
Continue [?/Y/n/s/t]?
Now we have to mount the correct tape, either by changing the soft link in /backup/amanda/tapes/
Or with the amtape command, do this in another shell, and keep your amrecover shell open:
[root@backup backup]# su - amanda
-bash-3.2$ amtape Daily current
changer: got exit: 0 str: 14 18 1
changer_query: changer return was 18 1
changer_query: searchable = 0
amtape: scanning current slot in tape-changer rack:
changer: got exit: 0 str: 14 file:/data/amanda/tapes
slot 14: date 20091202 label Daily-014
We can see we are currently on slot 14 which contains tape Daily-014
-bash-3.2$ amtape Daily show
changer: got exit: 0 str: 14 18 1
changer_query: changer return was 18 1
changer_query: searchable = 0
amtape: scanning all 18 slots in tape-changer rack:
changer_find: looking for NULL changer is searchable = 0
changer: got exit: 0 str: 14 file:/data/amanda/tapes
slot 14: date 20091202 label Daily-014
changer: got exit: 0 str: 15 file:/data/amanda/tapes
slot 15: not an amanda tape (Read 0 bytes)
changer: got exit: 0 str: 16 file:/data/amanda/tapes
slot 16: not an amanda tape (Read 0 bytes)
changer: got exit: 0 str: 17 file:/data/amanda/tapes
slot 17: not an amanda tape (Read 0 bytes)
changer: got exit: 0 str: 18 file:/data/amanda/tapes
slot 18: not an amanda tape (Read 0 bytes)
changer: got exit: 0 str: 1 file:/data/amanda/tapes
slot 1: date 20091119 label Daily-001
changer: got exit: 0 str: 2 file:/data/amanda/tapes
slot 2: date 20091120 label Daily-002
changer: got exit: 0 str: 3 file:/data/amanda/tapes
slot 3: date 20091121 label Daily-003
changer: got exit: 0 str: 4 file:/data/amanda/tapes
slot 4: date 20091122 label Daily-004
changer: got exit: 0 str: 5 file:/data/amanda/tapes
slot 5: date 20091123 label Daily-005
changer: got exit: 0 str: 6 file:/data/amanda/tapes
slot 6: date 20091124 label Daily-006
changer: got exit: 0 str: 7 file:/data/amanda/tapes
slot 7: date 20091125 label Daily-007
changer: got exit: 0 str: 8 file:/data/amanda/tapes
slot 8: date 20091126 label Daily-008
changer: got exit: 0 str: 9 file:/data/amanda/tapes
slot 9: date 20091127 label Daily-009
changer: got exit: 0 str: 10 file:/data/amanda/tapes
slot 10: date 20091128 label Daily-010
changer: got exit: 0 str: 11 file:/data/amanda/tapes
slot 11: date 20091129 label Daily-011
changer: got exit: 0 str: 12 file:/data/amanda/tapes
slot 12: date 20091130 label Daily-012
changer: got exit: 0 str: 13 file:/data/amanda/tapes
slot 13: date 20091201 label Daily-013
We need the tape in slot 5
-bash-3.2$ amtape Daily slot 5
changer: got exit: 0 str: 5 file:/data/amanda/tapes
amtape: changed to slot 5 on file:/data/amanda/tapes
-bash-3.2$ amtape Daily current
changer: got exit: 0 str: 5 18 1
changer_query: changer return was 18 1
changer_query: searchable = 0
amtape: scanning current slot in tape-changer rack:
changer: got exit: 0 str: 5 file:/data/amanda/tapes
slot 5: date 20091123 label Daily-005
Ok now we can continue our extract in the amrecover shell.
amrecover> extract
Extracting files using tape drive file:/data/amanda/tapes on host backup.
The following tapes are needed: Daily-005
Restoring files into directory /backup
Continue [?/Y/n]?
Extracting files using tape drive file:/data/amanda/tapes on host backup.
Load tape Daily-005 now
Continue [?/Y/n/s/t]?
./www/wiki/LocalSettings.php
amrecover> exit
[root@backup backup]# ls -al ./www/wiki/LocalSettings.php
-r-------- 1 48 48 5220 Nov 6 11:15 ./www/wiki/LocalSettings.php
FOSDEM 2.01k and N900
I have Just downloaded the Fosdem maemo tool for this weekend
here some screenshots
the ui is not so great but it is a very handy tool for 2 day's
you can select some favorites, searching or browsing in the tracs
and even get some more information about the talk
great work!


Zarafa Workshop
Open-Future, the company where I work is organizing a Zarafa workshop in February 2010!
Open-Future is a Linux & Open Source Integrator. Our goal is to make Open Source work for you. Our competences and services include:
- Infrastructure
- Security
- Groupware & ERP
- High Availability & Disaster Recovery
- Virtualisation
- Backup and Recovery
- ....
Zarafa is Open Source Collaboration, providing:
- Integration with your existing Linux mailserver
- Native mobile phone support
- Outlook "Look & Feel" webaccess
- Stable Outlook sharing (100% MAPI) * extract from www.zarafa.nl
Want to join the Zarafa Workshop? Click the banner:
Xen attach disk live
I had to resize a lvm-volume with swap on a xen domU without bringing it down. I'm just making a small how-to so I don't forget it in the future.
On the host create a swapfile big enough to get the currently used swap in it.
dd if=/dev/zero of=swapfile bs=1k count=1500000
mkswap swapfile
swapon swapfile
swapoff /dev/xvdb1
On the Dom0 Xen-server:
xm block-detach server01 /dev/xvdb1
lvresize /dev/vg0/server01_swap -L 2G
mkswap /dev/vg0/server01_swap
xm block-attach server01 phy:/dev/vg0/server01_swap /dev/xvdb1 w
KnowledgeTree universal installer problems on CentOS
When installing or migrating from KnowledgeTree (Document Management System) version 3.0.6 to 3.0.7.2 on CentOS using the KnowledgeTree universal installer one might run into the following issue:
None of the Scheduler's tasks get executed correctly.
All the tasks exit with the following errorcode:
[db_error: message="DB Error: extension not found" code=-25 mode=return level=notice prefix="" info="Array"]
You can test this manually:
# /usr/local/zend/bin/php /usr/share/knowledgetree-ce/search2/bin/cronDocumentProcessor.php [db_error: message="DB Error: extension not found" code=-25 mode=return level=notice prefix="" info="Array"]
The problem here is that the variable LD_LIBRARY_PATH is not set correctly, causing the zend php binary not being able to find the correct database module.
Let's try setting this variable manually:
# export LD_LIBRARY_PATH=/usr/local/zend/lib/ # /usr/local/zend/bin/php /usr/share/knowledgetree-ce/search2/bin/cronDocumentProcessor.php #
Fixed! Now, this only fixes the problem in our current shell, how do we make this fix persistent system wide? By creating a file in /etc/profile.d/ setting the variable system wide:
# vi /etc/profile.d/kt.sh
With the contents:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/zend/lib/Now, lets make this file executable:
# chmod +x /etc/profile.d/kt.sh
Now, all that's left to do is restart KnowledgeTree so that it reads the new content of the LD_LIBRARY_PATH variable and our problem is solved.
Bug reported to KnowledgeTree: http://issues.knowledgetree.com/browse/KTS-4576
suse 11 and Heartbeat
It looks like that sles 11 has kicked HA ... (link)
while all others are introducing new features ...
My guess is that integrating with Microsoft is Novell biggest mistake
btw, just download from opensuse the packets "heartbeat,openwbem,heartbeat-core,heartbeat-resources,libltdl"
and you can continue
Weird router crashes
Saturday brought a very strange behaviour to my Linksys WAG200 router, it started crashing very often.
After some tests I discovered the cause to be bittorrent, whenever I start deluge (with torrents in the queue), the router goes down at random intervals of 10 minutes to an hour. Without bittorrent, it just runs for 8 hours or more...
I don't understand this behaviour though as it wasn't upgraded recently and it has worked fine with bittorrent for nearly a year now...
I hope to get to the bottom of this very annoying behaviour.
Happy New Year everyone!
Zarafa munin scripts
I have created 2 scripts(in ruby) to gather some stats of my Zarafa server
The first one
zarafa-memory gives a overview of the used memory(Rss) for 5 processes of Zarafa
# /etc/munin/plugins/zarafa-memory zarafa_server.value 49696000 zarafa_gateway.value 21812000 zarafa_ical.value 6108000 zarafa_monitor.value 4284000 zarafa_spooler.value 4800000
You need to place the script into /etc/munin/plugins and restart munin-node
(after 5 or 10min you will see the first grapics)
The second script zarafa-threads gives a overview of the thread usage
# /etc/munin/plugins/zarafa-threads zarafa_server.value 11 zarafa_gateway.value 9 zarafa_ical.value 1 zarafa_monitor.value 2 zarafa_spooler.value 2
Later I will create another one to view the internal caching and maybe more (if there is time)
Open-Future workshops and training 2010
As the exact dates still have to be chosen, a short list of the training sessions Open-Future wil provide in 2010. Subject to change!
Seminars (IT Managers, CTO-CIO) will be held in march and october 2010.
One of the topics will include the migration from a windows/mixed environment to a Linux-based one (or mixed).
Workshops
02/2010: Zarafa : Presentation and demo + hands-on try out
04/2010: OpenERP
09/2010: LAMP
11/2010: PostgreSQL
Training:
01/2010: CakePHP
02/2010: FreeNAS & OpenFiler
03/2010: Revision Control (GIT, Subversion, Redmine, Trac)
04/2010: Disaster Recovery
05/2010: Ubuntu Release
06/2010: Zarafa
09/2010: Security IDS
10/2010: Puppet
11/2010: OpenERP
Open-Future launch
Open-future launch, our presentation of what open-source can do
![]() |
* Open-Future Launch Party – Making Open Source work for You! * Date: 7/12/2009 * Location: Oude Abdij, Kortenberg * Address: Abdijdreef 22, 3070 Kortenberg * Subscribe at marketing@open-future.be * Feel free to forward this invitation to anyone you feel might be interested! * Sponsored by Redhat and Zarafa |
Meet the crew! Attend the party and have a drink ;)
Gnu Screen ; Different regions, Logging, Screen Window Types
I wrote this Gnu Screen guide in December ‘08 with the previous incarnation of linux.com in mind. January 2009 however, linux.com started on its new and exciting path as a community site and the article just sat on my machine, waiting. So I decided to publish it on my blog in a four part series over the following month. Maybe someone can use it
Have you ever had to run a time consuming process (say mkfs or compiling something) over a shoddy ssh connection? Or cleanly run several commands in parallel without having several open connections to that server? Or maybe you were programming and wanted a mysql prompt, a bash prompt and several text editors open? How about that ssh tunnel you need open and dont want to close by accident? And did you ever need to perform the same task on several different machines? Or connect to a serial terminal? Or maybe you just want a log file of what you re doing..
These are day to day situations any linux user will run into, that can be quite frustrating. That is, before you discover Gnu screen!
“Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells.” Or at least, thats what the site calls it. Sounds easy enough, but there are an amazing amount of different uses for this incredible piece of software. The above list is some of the uses I could readily think about – some of the ways I regularly use screen, but like any decent linux tool – the sky really is the limit! I’ll be looking into different issues, so lets jump into some of the practical solutions for those problems.
The Fun Stuff – Different regions
Sometimes, having several windows is not enough.. It can help to have several different windows visible in your terminal and screen is able to provide you with that. As before, we need to open a screen session and open several windows. You could actually also do this with one window, but there wouldnt really be much point to it with one window. Once the new windows are opened, you can split the screen with the following shortcut.
C-a S (split) Split the current region into two new ones. C-a tab (focus) Switch the input focus to the next region.
With these commands, you can create several regions and switch between them. These regions contain the same regular windows we spoke about before and as such, all normal commands can be used to control their contents. You can choose any window to be shown inside these regions. To close and further controll these regions, you can use the following shortcuts.
C-a X (remove) Kill the current region. C-a Q (only) Delete all regions but the current one. C-a F (fit) Resize the window to the current region size.
These are the default defined shortcuts for the regions. There are however more commands to control your regions, they just are not bound to shortcuts. For a comprehensive list of these other options, I advise you to comb trough the screen man page and do a search for “region”. There is ,however, one interesting command I don’t want you to miss! (Small blatant man copying coming up)
resize
Resize the current region. The space will be removed from or added to
the region below or if there’s not enough space from the region above.
resize +N increase current region height by N
resize -N decrease current region height by N
resize N set current region height to N
resize = make all windows equally high
resize max maximize current region height
resize min minimize current region height
You will probably not want these windows the same size, so the resize command is really indispensable. Just like before, to use this commands, you have to call up the command line mode and input these commands there.
The Fun Stuff – Logging
Screen provides a simple mechanism for logging a session. It suffices to enable the logging in any of the three ways described below. The Parameter
-L turns output logging on for this window.
The shortcut
C-a H (log) Begins/ends logging of the current window to the file "screenlog.n".
Or the command.
log [on|off]
These commands enable logging to the standard “screenlog.%n” file, in the standard directory. Should this file already exist, screen will append the new data to the existing file.
To configure the logging in more detail, screen also accepts the following two commands.
logfile filename logfile flush secs
These commands allow the user to configure what name the logfile should have and how many seconds screen should wait before flushing the the logfile buffer to the system.
- Or maybe you just want a log file of what you re doing..
And using the above command, keeping that logfile is as easy as adding a parameter or using a shortcut. In using this system, you will soon discover that the logging is a wonderful and valuable tool, but also that when it comes to color tags and advanced ascii based menus or effects, the logs might turn out less than optimal. I’m thinking about the SLES Yast tool or even the fancy scp or yum progress bar. These commands will “replay” trough the log files while you read them and this does not always look as nice as you d probably like it to. This is however unavoidable and as such quite normal.
You might also want to look into the hardcopy concept; a de facto text based screenshot.
The Fun Stuff – Screen Window Types
And just when we thought we ‘d seen it all, after the vast array of different options, all the possibilities of screen.. There is still one more special option to mention. Screen has three different window types.
The first window type is the normal window type we’ve been using all along. The regular window with a traditional shell inside.
The second window is initiated by starting screen with as a first parameter a tty (character special device) device name, like for example /dev/ttya. This command connects screen directly to the character device and allows interaction with for example a null modem serial connection trough screen. To accommodate this, screen takes baud and other relevant settings as parameters. The info command now returns some of the modem control lines in the status line and the break command now sends the standard break signal over the device.
The third type is a telnet window. This is started using //telnet as a first parameter, followed by the host name and optionally a port as the third parameter. Screen will then act as a telnet client and interface with a remote telnet server. As with the device type, the telnet window returns telnet specific information when using the “info” command. The break command sends the telnet break signal to the server. This option is only available if screen was compiled with the BUILTIN_TELNET option.
- Or connect to a serial terminal?
Its in the end as simple as ..
screen /dev/ttyS0 19200 1n8
This might not seem too spectacular as an option, but not needing an extra program and instead being able to use good ‘ol screen can be a good and quick solution for when you need this, instead of installing minicom or whatnot.
And remember .. “A weird imagination is most useful to gain full advantage of all the features.” (Listed as a bug under the screen man page.)
The articles in this series focus on the following topics..



