Home » cPanel, Howto, Informatica, Linux

Pulire partizioni dai logs ed effettuare backup via FTP

12 novembre 2007 553 views No Comment

Per lavoro (e un pò per curiosità) mi è capitato di avere dei servers con le partizioni che si riempivano in continuazione: questo specialmente per macchine con hd piccoli e formattate in un determinato modo.

Se prendiamo una macchina adibita allo shared hosting e con su cPanel, come da manuale ci viene proposto uno schema di partizionamento del genere:

/boot 35 Megabytes (MB)
/usr 8192+ MB (8192MB if you have an 80GB drive, 10240MB for a 100GB drive, 20480MB for a 200GB drive, etc.)
/var 2500+ MB
/tmp 512+ MB
/ 2048 MB
/home grow to fill disk
swap 2x memory size

E’ chiaro che, in alcune situazioni, possiamo avere dei problemi per quanto riguarda la partizione dei logs (ma anche la /usr).

Per risolvere tale problema, ho svilupatto uno script che permette di effettuare un backup completo dei logs e inviarli via ftp per poi cancellarli direttamente e liberare spazio.

Nello script seguente cleaning_server.sh cambiare i dati dell’FTP da utilizzare e impostarlo in cron una volta al giorno (di notte sarebbe meglio):

#!/bin/bash

echo
echo
echo “********* Cleaning Server for cPanel **********”
echo
echo “This script effects the cleaning of the file server to free the partitions”
echo “and backup all to a FTP server.”
echo
echo “For info: morphey@morphey.org or christian@serverplan.com”
echo
echo

# Settings FTP server
FTP_SERVER=”your_ip_server”
FTP_USER=”your_user”
FTP_PASS=”your_pass”

# DO NOT EDIT FROM HERE
FILE_BACKUP=”$(hostname).$(date +”%d-%m-%Y”).tar”
TMPDIR=”/home/”

echo “Tar File: $TMPDIR$FILE_BACKUP …”

rm -f $TMPDIR$FILE_BACKUP

tar -cf $TMPDIR$FILE_BACKUP /var/log/cron*
/var/log/exim_mainlog*
/var/log/exim_paniclog*
/var/log/exim_rejectlog* /var/log/messages* /var/log/secure*
/usr/local/apache/logs

echo “..ok. Gzip file $TMPDIR$FILE_BACKUP …”

gzip $TMPDIR$FILE_BACKUP

echo “..ok.”
echo “Putting file on FTP server $FTP_SERVER …”
DIRCURRENT=`pwd`
cd $TMPDIR
ftp -n $FTP_SERVER <
user $FTP_USER “$FTP_PASS”
binary
bell
pwd
put “$FILE_BACKUP.gz”
ls
bye
End-of-Session
shift
rm -rf $TMPDIR$FILE_BACKUP.gz
cd $DIRCURRENT
echo “..ok, I have put a file on FTP server.”

echo “Removing obsolete old’s files…”
LOGS_FILES_REMOVE=”cron exim_mainlog exim_paniclog exim_rejectlog messages secure”
for i in $LOGS_FILES_REMOVE
do
echo “remove /var/log/$i.*”
rm -f /var/log/$i.*
done

echo “Stopping apache, removing logs and restart it…”
service httpd stop
sleep 5
killall -9 httpd
rm -f /usr/local/apache/logs/*
service httpd startssl

echo “Removing oboslete old’s file of cPanel-backup…”
rm -rf /home/cpbackuptmp/*
rm -rf /home/cprestore/*
rm -rf /home/backup/cpbackup/*

echo “..ok, I have ended :)
echo

For this article in English, you go here.

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.