===================================== 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/