Pulire partizioni dai logs ed effettuare backup via FTP
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/logsecho “..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.*
doneecho “Stopping apache, removing logs and restart it…”
service httpd stop
sleep 5
killall -9 httpd
rm -f /usr/local/apache/logs/*
service httpd startsslecho “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.
Tags
Howto, Informatica, Linux, cPanel
Popularity: 7% [?]

