Disattivare il Backup giornaliero

July 25, 2007

Vhcs consente da interfaccia utente di ripristinare tramite backup automatico, vecchie versioni dei siti degli utenti. Tale funzione risulta utile ma rischia di appesantire il lavoro del server. Il backup infatti viene eseguito dal server tramite un comando crontab, che comprime in file .zip (appesantendo il carico della cpu), l’intero contenuto di ciascun sito presente nel server. Oltre ad un consumo di prestazioni, tale funzione potrebbe esaurire in tempo molto brevi lo spazio disponibile nell’account dell’utente. Pertanto è consigliato rimuovere tale funzione e affidarsi alle vecchie procedure manuali di backup dell’intero sistema. Per disattivare il backup è sufficiente digitare da shell il comando:

crontab -e

e commentare la riga inerente il backup tramite l’inserimento del “#” (cancelletto) all’inizio della riga di codice:

0     1       * * *  /var/www/vhcs2/engine/backup/vhcs2-backup-all yes &>/var/log/vhcs2/vhcs2-backup-all-mngr.log

in modo da risultare:

# 0     1       * * *  /var/www/vhcs2/engine/backup/vhcs2-backup-all yes &>/var/log/vhcs2/vhcs2-backup-all-mngr.log

DNS Template

Utilizzando vhcs, la domanda che frequentemente si pongono gli amministratori del proprio server è: “come impostare i nameserver uguali per tutti i domini gestiti?”.
L’installazione di base di vhcs infatti, gestisce i propri record dns in modo differente per ogni dominio impostando automaticamente i record ns seguiti dal dominio, es: “ns.miodominio1.com, ns2.miodominio1.com” e per i successivi domini, “ns.miodominio2.com, ns2.miodominio2.com” ecc ecc.
Non ritengo sia una scelta molto appropriata impostare diversi record ns che puntino sempre allo stesso indirizzo IP del server, quindi sarebbe opportuno impostare i record ns in maniera tale che siano gli stessi per ciascun dominio gestito nello stesso server. Per far ciò dobbiamo editare un file template per bind. Il file in questione è denominato db_e.tpl ed è reperibile nella seguente directory:

/etc/vhcs2/bind/parts/

Per editare il file è necessario utilizzare un semplice editor di testo (io preferisco nano), e di conseguenza:

nano /etc/vhcs2/bind/parts/db_e.tpl

L’impostazione che utilizzo attualmente per ottenere tale risultato, è possibile visualizzarla di seguito:

$TTL 86400
@       IN      SOA     ns1.crashlab.net. hostmaster.crashlab.net. (
; dmn [{DMN_NAME}] timestamp entry BEGIN.
{TIMESTAMP}
; dmn [{DMN_NAME}] timestamp entry END.
8H
2H
4W
1D )
IN NS ns1.crashlab.net.
IN NS ns2.crashlab.net.
; dmn [{DMN_NAME}] dns2 entry BEGIN.
; dmn [{DMN_NAME}] dns2 entry END.
IN      MX      10 mail.{DMN_NAME}.

{DMN_NAME}.     A       {DMN_IP}
ns1.crashlab.net. IN A  {DMN_IP}
ns2.crashlab.net. IN A  {DMN_IP}
mail            IN      A       {DMN_IP}
www             CNAME   {DMN_NAME}.
ftp             CNAME   {DMN_NAME}.
; sub [{SUB_NAME}] entry BEGIN.
; sub [{SUB_NAME}] entry END.

Analizzando tale struttura potrete notare che utilizzo IN NS ns1.crashlab.net ed IN NS ns2.crashlab.net
Sarà semplice capire, che il file template sostituisce i tag {DMN_IP} con l’indirizzo IP del server attribuito da pannello al dominio e {DMN_NAME} con il nome a dominio registrato da pannello. Utilizzando questa struttura e confrontandola con il file originale, potete adattare il file di template secondo le vostre esigenze. Qualora incontraste problemi, potrete sempre contattarmi sul forum.

Preciso inoltre che questo è solo un file che guida vhcs alla creazione del file finale contenente i dati destinati a BIND (il NameServer). I files finali li troverete nella directory:

/etc/vhcs2/bind/working/

Ricordo che, qualora il sistema risultasse con domini già configurati, effettuata la modifica sarà necessario rigenerare le configurazioni di vhcs, in modo da correggere i file finali già creati con le impostazioni nuove.

DNS TimeStamp PATCH

Vhcs 2.4.7.1 soffre di un bug nell’aggiornamento del SOA (Numero Seriale DNS). Come le moderni norme consigliano, il seriale dovrebbe rispecchiare la data di aggiornamento e le modifiche effettuate durante il giorno. In questa versione di vhcs hanno sostituito il formato UNIX con l’attuale consigliato dalle norme sui DNS. Successivamente al rilascio si sono resi conto di aver dimenticato di correggere il tipo di formato da utilizzare anche quando da pannello si aggiunge un sottodominio o un alias dominio. Pertanto la comunità di VHCS ha rilasciato delle note di codice da inserire manualmente nei file interessati alla procedura di aggiornamento del DNS. Quando però io stesso ho applicato la loro patch, mi sono accorto di una loro errata modifica del codice e, notando un non riscontro alla mia richiesta di correzione del bug, ho deciso di realizzarla da me ed infine l’ho pubblicata sul sito della comunità. In poche parole la loro patch non aggiornava le modifiche giornaliere del DNS.

Prima di iniziare con la modifica consigliano di effettuare un backup dei due file, che in caso di una modifica inappropriata potrebbero causare il blocco del pannello. Pertanto eseguite i comandi:

cp /var/www/vhcs2/engine/vhcs2-sub-mngr /var/www/vhcs2/engine/vhcs2-sub-mngr.bkp
cp /var/www/vhcs2/engine/vhcs2-als-mngr /var/www/vhcs2/engine/vhcs2-als-mngr.bkp

Editiamo ora il file /var/www/vhcs2/engine/vhcs2-als-mngr, inserendo all’inizio del codice:

my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
my $time2 = sprintf “%4d%02d%02d01″,$year+1900,$mon+1,$mday;

Nel file /var/www/vhcs2/engine/vhcs2-als-mngr trovare la riga:

‘{TIMESTAMP}’ => time

e sostituirlo con:

‘{TIMESTAMP}’ => $time2

A questo punto è possibile scaricare direttamente il file corretto da sostituire a
/var/www/vhcs2/engine/vhcs2-sub-mngr

dalla shell del nostro sistema linux digitare:

wget  http://www.smokinglinux.com/files/vhcs2-subdomain-serialfix.tar.gz

Sostituito il file con quello corretto, è necessario creare una directory dove vhcs salverà le modifiche del dns:

mkdir /etc/vhcs2/bind/modzone

Per rendere effettive le operazioni è necessario rigenerare le configurazioni di vhcs.

Rigenerare le configurazioni

Effettuate modifiche al codice del proprio pannello, per evitare un qualsiasi malfunzionamento dello stesso, è necessario effettuare un aggiornamento delle configurazioni, pertanto procedere come segue:

/etc/init.d/vhcs2_daemon stop
mysql -u root -p <password>
USE vhcs2
UPDATE `domain` SET `domain_status` = ‘change’ WHERE `domain_status` = ‘ok’;
UPDATE `domain_aliasses` SET `alias_status` = ‘change’ WHERE `alias_status` = ‘ok’;
UPDATE `subdomain` SET `subdomain_status` = ‘change’ WHERE `subdomain_status` = ‘ok’;
quit
/var/www/vhcs2/engine/vhcs2-rqst-mngr
/etc/init.d/vhcs2_daemon start