piwik

dimarts, 29 d’abril del 2014

Rsync option to ignore permissions

rsync -rltzuv /source root@destination:/backup

dimarts, 22 d’abril del 2014

SVN Warning: post-commit FS processing had error 'attempt to write a readonly database'.

When committing changes to the SVN server this error pop up, doesn't seem to be affecting the commits, however I wanted to fix it. With a little bit of google'ing I found out that rep-cache.db inside each repository was missing the right permissions.

root@molly:/srv/svn/turing# ll db/
total 56
drwxrwsr-x 6 www-data subversion 4096 Apr 22 14:05 ./
drwxrwsr-x 7 www-data subversion 4096 Apr 22 14:04 ../
-rw-rwSr-- 1 www-data subversion    2 Apr 22 14:05 current
-r--rwSr-- 1 www-data subversion   22 Apr 14 17:51 format
-rw-rwSr-- 1 www-data subversion 1920 Apr 14 17:51 fsfs.conf
-rw-rwSr-- 1 www-data subversion    5 Apr 14 17:51 fs-type
-rw-rwSr-- 1 www-data subversion    2 Apr 14 17:51 min-unpacked-rev
-rw-r--r-- 1 root     subversion 4096 Apr 14 18:29 rep-cache.db

I got it fixed just by setting www-data as the owner of the file.

chown www-data ../lamport/db/rep-cache.db

So I've done it for every repository that I have. The main directory hangs from /srv/svn and from there I have all repositories, different one for each server.

dimecres, 16 d’abril del 2014

Mediawiki Error creating thumbnail: Unable to save thumbnail to destination

After installing a mediawiki on our managed server, I found that thumbnails were not displayed in the wiki because there was not a variable pointing to a temp folder were the thumbnails should go defined. I may probably had to enable ImageMagickConvertCommand as well, but not sure. That was my previous LocalSettings.php file:

## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:
$wgEnableUploads  = true;
#$wgUseImageMagick = false;
#$wgImageMagickConvertCommand = "/usr/bin/convert";

And this is how it looks like after enabling it.

## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:
$wgEnableUploads  = true;
$wgUseImageMagick = false;
#$wgImageMagickConvertCommand = "/usr/bin/convert";
$wgTmpDirectory = "$IP/images/temp";

dimarts, 25 de març del 2014

Backup script v0.2

This is the v 0.2 of the backup script, which does basically the same as v 0.1 but it has been modify to use variable for the path, instead of typing each path, and it is also backing up to a external NAS mounted through NFS, so it performs the mount, check whether it works and performs the backup.


#!/bin/bash
#Copyright (C) 2014 Josep Manel Andrés Moscardó http://terradelfoc.blogspot.com
#Version 0.2
#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published
#by the Free Software Foundation, either version 3 of the License,
#or (at your option) any later version.
#
#This program is distributed in the hope that it will be useful, but
#WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANT
#ABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 
#Public License for more details.
#
#You should have received a copy of the GNU General Public License 
#along with this program. If not, see http://www.gnu.org/licenses/.
#

DAILYPATH=/backup/daily/
WEEKLYPATH=/backup/weekly/
MONTHLYPATH=/backup/monthly/
#PATHBACKUP=/backup
CAL=/usr/bin/cal
#Format= 2013-03-20
YESTERDAY=`date --date=yesterday +%Y-%m-%d`
TODAYFULL=`date +%Y-%m-%d`
#Int (where Monday is 1 and Sunday is 7)
TODAY=`date +%u`
#Format= 2013-03-20
SEVENDAYSAGO=`date --date '7 days ago' +%Y-%m-%d`
FOURWEEKSAGO=`date --date '28 days ago' +%Y-%m-%d`
FIVEWEEKSAGO=`date --date '35 days ago' +%Y-%m-%d`

#These variables will be used to find out which day is the backup from 5months ago that we have to remove
FIVEMONTHSAGOMONTH=`date --date='5 month ago' +%m`
FIVEMONTHSAGOYEAR=`date --date='5 month ago' +%Y`

#This function will give us the date of the first Monday of 5 months ago month.
function date5monthsago(){
  #Exact day for the backup from 5months ago
  local aux=`$CAL $FIVEMONTHSAGOMONTH $FIVEMONTHSAGOYEAR |
  awk '
  NR == 1 { next }
  NR == 2 { next }
  NF <= 5 { next }
  NF == 6 { print $1 ; exit }
  NF == 7 { print $2 ; exit }
  '`
  echo $aux
}

#AUX used for checking whether the backup from 28 days ago is the first Monday of the month backup, if so We'll keep it in monthly directory, if not, we'll remove it.
AUX=`date --date '35 days ago' +%d`

#Do daily backup and store it on /home/backup/daily
#To log Starting time
START=$(date +%s)

#Mounting NFS to backup IC3HOME, we'll be umounting the FS at the end of the script
echo "###########Start mounting NFS############" > /tmp/mount.log 2>>1
mount lamarr:/volume1/backup /backup/ &>> /tmp/mount.log

if [ $(echo $?) -eq 0 ]; then
 echo "mounted OK" >>  /tmp/mount.log
 cat /tmp/mount.log >> $DAILYPATH$TODAYFULL.log

 ##########################################################
 echo "#########################Starting ic3home backup#####################" >> $DAILYPATH$TODAYFULL.log 2>>1
 ###########################################################
 ###########################################################
 rsync -avz --link-dest=/backup/daily/$YESTERDAY --progress /export/ic3home/ /backup/daily/$TODAYFULL >> $DAILYPATH$TODAYFULL.log 2>&1
 ###########################################################
 ###########################################################

 #To log Finishing time
 END=$(date +%s)
 TOTALTIME=$(( $END - $START ))
 echo "############################################################################################" >> $DAILYPATH$TODAYFULL.log
 echo "Start time:$START, finish time:$END, seconds:$TOTALTIME" >> $DAILYPATH$TODAYFULL.log


 #We will check if today is Monday, if so we'll move last monday's backup 1 directory up
 if [ "$TODAY" -eq "1" ]; then
   if [ -d "$DAILYPATH$SEVENDAYSAGO"  ]; then
     mv $DAILYPATH$SEVENDAYSAGO $WEEKLYPATH
     mv $DAILYPATH$SEVENDAYSAGO.log $WEEKLYPATH
   fi
   #Checking for a backup older than 28 days and also from first Monday of the month.If the backup from 28 days ago is not the firstMondayOfTheMonth we'll expire, or else we'll keep it within the monthly directory.  
   if [ -d "$WEEKLYPATH$FIVEWEEKSAGO" ]; then
     #Is it from first Monday of the month?
     if [ "$AUX" -le "7" ]; then
       mv $WEEKLYPATH$FIVEWEEKSAGO $MONTHLYPATH
       mv $WEEKLYPATH$FIVEWEEKSAGO.log $MONTHLYPATH
       #Execute function to find out exact date for 5 months ago
       FIVEMONTHSAGODAY=$(date5monthsago)
       #Expire backups older than 4 months ago. Note that FIVEMONTHSAGODAY has only 1 digit,that is why we add "0" before.
       if [ -d "$MONTHLYPATH${FIVEMONTHSAGOYEAR}-${FIVEMONTHSAGOMONTH}-0${FIVEMONTHSAGODAY}" ]; then
  rm -rf $MONTHLYPATH${FIVEMONTHSAGOYEAR}-${FIVEMONTHSAGOMONTH}-0${FIVEMONTHSAGODAY}
  rm $MONTHLYPATH${FIVEMONTHSAGOYEAR}-${FIVEMONTHSAGOMONTH}-0${FIVEMONTHSAGODAY}.log
       fi
     #If 35 days ago backups is not the first monday of the month, expire it
     else
       rm -rf $WEEKLYPATH${FIVEWEEKSAGO}
       rm $WEEKLYPATH${FIVEWEEKSAGO}.log
     fi
   fi

 #If today is NOT Monday we'll expire old daily backups
 else
   #Is there a backup from 1weekago? If so we'll exxpire it
   if [ -d "$DAILYPATH$SEVENDAYSAGO" ]; then
     rm -rf $DAILYPATH$SEVENDAYSAGO
     #Remove log file also
     rm $DAILYPATH${SEVENDAYSAGO}.log
   fi    
 fi

 #Umount the NFS
 umount /backup
else
 echo "NFS couldn't be mounted" >> /tmp/mount.log
fi

dimecres, 19 de març del 2014

Run of Puppet configuration client already in progress

notice: Run of Puppet configuration client already in progress; skipping

Puppet believes that it is already running. If this isn't the case then you may have a stale lock file. Check with "ps axf" to see if puppetd is running, if it isn't then delete the lockfile (/var/lib/puppet/state/puppetdlock is likely location).

Source

dilluns, 3 de març del 2014

How to install BRugs on Ubuntu 12.04

Before installing BRugs we need to have  gcc-4.6-multilib installed, we can do so from Ubuntu repos.
Then we download the latest package and from the same directory where it is located we issue the following command:

R CMD INSTALL BRugs_0.8-3.tar.gz --configure-args='--with-openbugs=/usr/local/openbugs'

From inside R you can install R just by typing:

install.packages("BRugs", lib = "/usr/local/R/lib/", configure.args = "--with-openbugs=/usr/local/openbugs")

Installing R library from source, tar.gz file

install.packages("INLA.tgz", repos=NULL, type="source", lib="/usr/local/R/lib/")