=====================================
Kim
=====================================
Gestioni dei servizi
:Author: Andrea Manni
:Copyright: GFDL
:Version: 0.1
Questi appunti sono ad uso privato.
.. sectnum::
.. contents:: Indice degli argomenti
.. |date| date::
Generato il |date| con: http://docutils.sourceforge.net/rst.html
Virtual server
===============
Deployment dei siti web
Filesystem
------------
Mettere nella home dell'utente (per FTP) le cartelle:
- sitoweb
- logs
- stats
logs
Dedicata ai log di apache
stats
Dedicata a webalizer
Virtual host per apache
--------------------------
Esempio di un file per ``/etc/apache2/sites-available/`` sample::
ServerAdmin webmaster@andreamanni.com
ServerName www.paspped.it
ServerAlias paspped.it
DocumentRoot /home/danilooo/sitoweb
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /home/danilooo/logs/access.log combined
#ErrorLog /home/danilooo/logs/error.log
#
# # This goes for webalizer
# # Create a web.conf in /etc/webalizer and cron daily will process it
# # You should create directories for stats/ and logs/
# ServerAdmin webmaster@andreamanni.com
# ServerName stats.pasequipped.it
# DocumentRoot /home/danilo/stats
#
#
# Options Indexes FollowSymLinks MultiViews
# AllowOverride None
# Order allow,deny
# allow from all
#
# LogLevel crit
#
Webalizer
-------------
I file di configurazione per ``webalizer`` vanno nella cartella ``/etc/webalizer`` , possono essere anche link simbolici. Da qui vengono letti direttamente da ``cron.daily``.
Copiare un file di esempio e modificare::
#ReportTitle Usage Statistics for
ReportTitle Statistiche per nomesito.it
HostName www.nomesito.it
Quiet yes
# Your own site should be hidden
HideSite *nomesito.it
# Your own site gives most referrals
HideReferrer www.nomesito.it/
Backup
======
Scripts vari per il backup
Incremental
---------------
Script per il backup incrementale del file system di root (o altro) su un filesystem *locale*. Questo usa un link relativo ``latest`` piuttosto che usare qualche parametro come ``yesterday``.
rsynt_root_incremental.sh ::
#!/bin/sh
# This script goes for the periodic incremental backup
# of the OS: root partition.
# Beware: garage is not build on LVM
FS_path=/mnt/backup
# Path where the backup filesystem is located:
# this could be used for a mount ro | rw
BAK_path=garage/os
# Relative path to FS_path where the actual backup is
mount -o remount,rw $FS_path
rsync --progress --stats -ax --delete \
--link-dest=$FS_path/$BAK_path/latest \
--exclude=/tmp/ \
--exclude=var/spool/squid3 \
--exclude=mnt/clusters \
--exclude=mnt/backup \
--exclude=/proc \
--exclude=/sys \
--exclude=*vmdk \
--exclude=*iso \
/ $FS_path/$BAK_path/root_$(date +%Y%m%d)
rm $FS_path/$BAK_path/latest
ln -s $FS_path/$BAK_path/root_$(date +%Y%m%d) $FS_path/$BAK_path/latest
mount -o remount,ro $FS_path
Backup di kim
---------------
Script per una partizione che non sta su LVM::
#mount mount /dev/main/squeeze_bak /mnt/squeeze_bak/
mount /mnt/squeeze_bak
rsync -ax --delete \
--exclude=/proc \
--exclude=/sys \
--exclude=/sys \
/* /mnt/squeeze_bak/
umount /mnt/squeeze_bak
fsarchiver -j2 savefs /tmp/squeeze_$(date +%Y%m%d).fsa /dev/main/squeeze_backup
# put the thing on ftp server
HOST='ftpback'
R_PATH='/kim'
LOCAL_PATH='/tmp'
FILE="squeeze_$(date +%Y%m%d).fsa"
/usr/bin/ftp -i $HOST < dbname.dump
# Dump di una tabella
pg_dump -t mytab mydb > db.sql
# " compresso
pg_dump -Fc -t mytab mydb > db.sql
Tutti i backup sono comprimibili al volo::
pg_dump dbname | gzip -c > dbname.sql.gz
Ripristino
-----------
pg_restore -d dbname < dbname.dump
# see Section 23.1.3, Updating Planner Statistics in the documentation and Section 23.1.5, The Autovacuum Daemon
analyse
DPKG / APT
==========
Per fare una lista dei pacchetti installati::
dpkg --get-selections > /tmp/dpkg-list.txt
Per ricaricare la lista e reinstallare il tutto::
dpkg --clear-selections
dpkg --set-selections < /tmp/dpkg-list.txt\
dpkg --get-selections | sed -e \'s/deinstall/purge/\' > /tmp/dpkg-list.txt
dpkg --set-selections < /tmp/dpkg-list.txt
Dist-upgrade
==============
Routine per il dist-upgrade da una release all'altra::
status/
apt.conf ifconfig passwd sfdisk_sda.out uname
dpkg-list.txt lilo.conf ps sources.list uptime
fstab mount route umount
Per status si usa:
cd status
dpkg --get-selections > dpkg-list.txt
sfdisk -d /dev/sda > sfdisk_sda.out
cp /etc/apt/sources.list ./
cp /etc/apt/apt.conf ./
cp /etc/fstab ./
ifconfig > ifconfig
route -n > route
cp /etc/passwd ./
uname -a > uname
cp /etc/lilo.conf ./
ps -aef > ps
uptime > uptime
cp /etc/fstab ./
mount > mount
cp /etc/mtab ./
lvs > lvs
vgs > vgs
pvs > pvs
cat /proc/mdstat > mdstat
df -h > df
discus > discus
Preparazione pre update
ntpdate-debian update
Stoppare cron: /etc/init.d/cron stop
Eseguire tutti gli script di back up
Fare un fsck fi tutti i filesystem
Eseguire un apt-get install -f
vim /etc/apt/sources.list
apt-get update
apt-get -d dist-upgrade
apt-get install apt dpkg
apt-get install -f
apt-get dist-upgrade
Lilo reboot test
----------------------
E' possibile far fare a lilo un reboot sul nuovo kernel, se questo non funziona e si va in panic rifare un reboot con il kernel vecchio. Si deve mettere come default il kernel vecchio, aggiungere un panic::
default=LinuxOLD
image=/vmlinuz
label=Linux
append="panic=5"
read-only
# restricted
initrd=/initrd.img
eseguire lilo, eseguire un::
lilo -R Linux
Che fara' fare un boot solo per una volta sul kernel nuovo, se questo va in panic istanzia un reboot che tornera' sul kernel vecchio di default.
Btrfs
========
Creare un subvolume::
btrfsctl -S NewSubVol /mnt/test
Creare uno snapshot::
btrfsctl -s /mnt/test/NewSnapShot /mnt/test/NewSubVol
.. note::
Se lo stesso subvolume viene montato in piu' punti sara' sempre con le stesse opzioni, alias compresso in questo caso.
Visualizzare i btrfs disponibili::
btrfs filesystem show
Visualizzare i sottovolumi disponibili::
btrfs subvolume list
Montare un subvolume compresso::
mount /dev/main/btrfs -o subvol=Sid64,compress /mnt/sid
Lo stesso in fstab::
/dev/mapper/main-btrfs / btrfs subvol=Sid64,compress,noatime 0 1
Opzioni di mount: https://btrfs.wiki.kernel.org/index.php/Getting_started#Mount_Options
Mailman
========
Purgare archivio
-------------------
Per purgare un archivio on line::
vim /var/lib/mailman/archives/private/aerei.mbox/aerei.mbox
/var/lib/mailman/bin/arch --wipe aerei
Settare il campo reply to nei settaggi della mail in caso di liste virtuali:
reply_to_address
Nuova lista con virtual domain
-------------------------------
Per le liste @lists.andreamanni.com non ci dovrebbero essere problemi, basta inserire le voci in /etc/aliases e tutto dovrebbe andare.
Per liste @piffa.net bisogna invece usare i virtual: l'indirizzo email principale dovrebbe andare in
/etc/mailman/virtual-mailman
Poi fare un postmap virtual-mailman e un reload di mailman
Gli indirizzi di servizio (iscrizioni, admini,...) al momento funzionano
mettendoli nei virtual di postfix:
/etc/postfix/virtual
poi fare un postmap virtual
e un reload di postfix
Dkim
=======
Tests::
dig @ns1.piffa.net mail._domainkey.piffa.net txt
dig @ns2.piffa.net mail._domainkey.piffa.net txt
Altri hosts:
dig @ns1.piffa.net mail._domainkey.zap.piffa.net txt
dig @ns1.piffa.net mail._domainkey.andreamanni.com txt
Open dkim:
opendkim-testkey -d piffa.net -s mail -vvv
opendkim-testkey -d zap.piffa.net -s mail -vvv
opendkim-testkey -d andreamanni.com -s mail -vvv
SMTP test:
http://dkimvalidator.com/