[Guida] Installazione di Avantfax 3.3.5

Utilizzo di applicazioni in ambito professionale.

[Guida] Installazione di Avantfax 3.3.5

Messaggioda bingel » lunedì 20 marzo 2017, 15:41

Mi sono di recente trovato nella necessità di realizzare un piccolo faxserver con Avantfax. Siccome ho trovato alcune difficoltà con gli installer presenti nel pacchetto scaricabile da Sourceforge (https://sourceforge.net/projects/avantf ... t/download), riporto di seguito alcune indicazioni per superarle (ho dovuto modificare tali script che oltre ad essere datati (ho potuto dedurre che siano stati realizzati contestualmente alla versione 3.3.3 di Avantfax) sono anche sbagliati). Parto dal presupposto che chi si metta giù a configurare un server abbia alle spalle già un minimo di esperienza per cui non descriverò pedissequamente tutti quanti i passaggi fatti né dove sia necessario variare alcuni parametri in base al proprio sistema (l'utente esperto, presuppongo ci arrivi da solo). Preciso inoltre che io sono stato costretto ad utilizzare "Antix" come distribuzione visto che al contrario delle distribuzioni "mainstream" come Ubuntu, supporta anche vecchie CPU che deficitano di flag "pae", "cx8" e "cmov" (per esempio alcune CPU VIA C3). In ogni caso Antix, come Ubuntu è basata su Debian e spero che le istruzioni possano essere facilmente adattate laddove sia necessario. E' tuttavia possibile che alcuni pacchetti, per esempio, abbiano un nome leggermente diverso su Ubuntu e che alcuni script vadano rivisti in quanto l'avvio e l'arresto dei servizi su Antix avviene ancora in base alle regole di SystemV mentre su Ubuntu si usa il comando "systemctl" (fare una ricerca per "service" o "/etc/init.d" per trovare quelle parti di codice da variare).

EDIT: purtroppo ho avuto modo di verificare che su Ubuntu 16.04, la maggior parte dei pacchetti richiesti è stata aggiornata ad una versione più recente. Sulla versione precedente forse le cose vanno un po' meglio ma non consiglio di usarla per creare un server in quanto ormai troppo datata. La versione stabile di Debian (al momento in cui scrivo è Jessie), a differenza di Ubuntu è invece più adatta per questa installazione in quanto i pacchetti richiesti sono tutti quanti presenti.

Server fax su Antix/Debian core 16.1 con Hylafax 6.0.6 ed Avantfax 3.3.5

La parte immediatamente seguente può essere tranquillamente saltata in quanto si riferisce specificamente all'installazione di Antix core tuttavia la riporto in quanto a qualcuno potrebbe risultare utile. Tenere in ogni caso in considerazione quanto indicato ai passi per la configurazione dell'host, del dominio e della rete nonché al primo punto della "sezione" "N.B.":

##################################################
##################################################

Prima di iniziare l’installazione tramite il comando “cli-installer” creare le partizioni necessarie tramite “fdisk” (attenzione ad indicare quella di boot e a cambiare la tipologia a quella di swap (codice 82 invece che 83)):

Codice: Seleziona tutto
sudo fdisk /dev/sda


in tal modo si avvia il programma; usare poi i comandi “o” per creare una nuova tabella delle partizioni quindi “n” per creare le partizioni. Con “a” si imposta la partizione avviabile e con “t” si imposta il tipo di partizione. Con “w” si salva e si esce. Con “m” si ottiene un sintetico help.

Io mi attengo ai seguenti canoni:

    - 3/4 GB per la partizione “sda1” (partizione di sistema)
    - 2,5 volte la capacità della RAM per la swap (solo per RAM di piccolo taglio: 512MB, massimo 1 GB; con RAM più capienti, della swap ce ne facciamo ben poco)
    - il restante spazio per “sda3” (partizione contenente “/var”)

Una volta create le partizioni, formattarle in questo modo:

Codice: Seleziona tutto
sudo mkfs.ext4 -L “/” /dev/sda1
sudo mkswap -L “swap” /dev/sda2
sudo mkfs.ext4 -L “/var” /dev/sda3


A questo punto è possibile avviare l'installer (digitando il comando cli-installer). Antix core, in automatico, installa tutto quanto in una sola partizione (chiede solo se tenere separata la /home ma scegliere NO. Scegliere l'opzione di default anche per tutte le altre domande). Se si vuole spostare la directory /var (contenente i fax ricevuti ed inviati nonché il server web “avantfax”) in una partizione a parte, una volta terminata l’installazione e prima di riavviare, montare /dev/sda1 (partizione root) e quindi modificare il file /etc/fstab inserendovi una linea per il mount di /var (vedi sotto) dopodiché spostare (con il comando “mv”) tutto il contenuto di /var in un’altra partizione che si avrà precedentemente preparato (per esempio /dev/sda3) e quindi montato a sua volta:

Codice: Seleziona tutto
sudo mkdir /mnt/sda1 /mnt/sda3
sudo mount /dev/sda1 /mnt/sda1
sudo mount /dev/sda3 /mnt/sda3
sudo mv /mnt/sda1/var/* /mnt/sda3


/etc/fstab (sudo nano /mnt/sda1/etc/fstab):

Codice: Seleziona tutto
UUID=6c92f681-138c-4b38-9494-92bda3dd8729  /                    ext4       defaults                        1 1
UUID=8691d848-ade4-47e0-93cd-a4ced638afb6  swap                 swap       defaults                        0 0
UUID=4b8beb4b-095e-461d-aae0-eb6c6fafab21  /var                 ext4       defaults                        0 2
#UUID=4b8beb4b-095e-461d-aae0-eb6c6fafab21  /media/_var          ext4       noauto,exec,lazytime,users      0 0


Fatto ciò si può anche settare il file /mnt/sda1/etc/hosts modificando come sotto indicato, la linea seguente (ovvero aggiungendovi il dominio):

Codice: Seleziona tutto
127.0.0.1   avantfax.dominio.dom avantfax
(dove “avantfax” è il nome host e “dominio.dom” sarà il dominio della rete in cui il faxserver andrà installato)


ed impostare un indirizzo ip statico per la scheda di rete inserendo i dati seguenti nel file /mnt/sda1/etc/network/interfaces (commentare, invece, la linea relativa al DHCP):

Codice: Seleziona tutto
# interfaces(5) file used by ifup(8) and ifdown(8)

# The loopback network interface

auto lo
iface lo inet loopback


# The primary network interface

auto eth0
allow-hotplug eth0

#iface eth0 inet dhcp

iface eth0 inet static
  address 192.168.1.10
  netmask 255.255.255.0
  gateway 192.168.1.1
  network 192.168.1.0
  broadcast 192.168.1.255
  dns-nameservers 192.168.1.1


A questo punto si può riavviare.

Se le modifiche ai file hosts ed interfaces vengono effettuate dopo il riavvio (e non prima) sarà necessario riavviare anche l’interfaccia di rete ed il servizio hostname.sh:

Codice: Seleziona tutto
sudo /etc/init.d/networking stop; sudo /etc/init.d/networking start  #comandi per Antix
# sudo systemctl restart networking # comando per Ubuntu (da verificare)
sudo /etc/init.d/hostname.sh stop; sudo /etc/init.d/hostname.sh start  #comandi validi sia per Antix che per Ubuntu


Fatto ciò si potrà eseguire l’aggiornamento del sistema appena installato:

Codice: Seleziona tutto
sudo apt-get update (sostituire, prima, i repositories greci, estremamente lenti, con quelli tedeschi nel file /etc/apt/sources.list.d/antix.list (l’indirizzo si trova nella pagina di download del sito di Antix))
sudo apt-get dist-upgrade


N.B.:

- Gli ultimi passi dell’installazione richiedono di inserire un nome host, la password di root e di creare un nuovo utente/password. Inseririe quanto segue:

    - nome host: avantfax
    - password di root: avantfax
    - user: faxmaster
    - password di user: faxmaster

Qualora si volessero modificare le password, ricordarsi di modificare anche quelle parti di codice dei file di installazione (vedi sotto) che fanno riferimento ad esse. Per quanto riguarda i nomi utente ed host, consiglio di lasciare questi qua. Se li si cambia vale lo stesso discorso di cui sopra. Quanto detto non è necessario per l'utente "faxmaster" il cui nome e password possono essere cambiati a piacimento senza problemi e senza necessità di adeguare nulla.

- L’ultimo passo in assoluto riguarda l’installazione di Grub. Installarlo nel “MBR” (sda) e non in “root” (sda1).

- Verificare, col comando “hostname -f” che il FQDN corrisponda a “avantfax.dominio.dom

Fine parte riguardante Antix
##################################################
##################################################

INSTALLARE (tramite il comando “sudo apt-get install nome-pacchetto” quanto segue:

Utilità di sistema e servizi vari:

Codice: Seleziona tutto
lilo (necessario solo per via di incompatibilità tra processore VIA C3 e Grub2. Purtroppo Grub-legacy, in Antix non si installa)
ntp
ssh
acpid (necessario per lo spegnimento tramite pultante)
acpi-support-base (necessario per lo spegnimento tramite pulsante)
tasksel (task installati: server web, server ssh, server di stampa) (potrebbe essere sufficiente installare "apache2" e non tutto il task "server web" o LAMP che dir si voglia)


Pacchetti necessari per l'installazione di Avantfax:

Codice: Seleziona tutto
postfix (installarlo prima di "hylafax", come tipo di configurazione scegliere "sito internet" (default) e come dominio inserire “avantfax.dominio.dom” (default). Per modificare tale valore editare il file "/etc/postfix/main.cf" ed il file "/etc/mailname".
hylafax-server (è necessario configurarlo col comando “faxsetup” (vedi guide ubuntu e debian in italiano per l'installazione di hylafax) dopodiché aggiungere almeno un modem. E' un passo necessario, altrimenti si avranno problemi con l'installazine di Avantfax)
hylafax-client (dovrebbe venir installato automaticamente installando il pacchetto hylafax-server)
tesseract-ocr
tesseract-ocr-ita
html2ps
task-print-server (dipende da "tasksel")
mysql-server (come password per l’amministratore di mysql impostare “avantfax”)
php5-mysql
php5
phpmyadmin


Pacchetti installati tramite lo script debian-install.sh di Avantfax (vedi sotto):

tra parentesi la spiegazione delle modifiche da me apportate (alcuni pacchetti potrebbero risultare già installati):

Codice: Seleziona tutto
apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libsqlite3-0 php5-cli php5-common mysql-server imagemagick libtiff5-dev (al posto di libtiff4-dev) netpbm libnetpbm10-dev giflib-tools (al posto di libungif-bin ...viene selezionato automaticamente) libgif-dev (al posto di libungif4-dev) sudo php-mail php-mail-mime php-file php-db php5-mysql psutils wdiff rsync postfix


local_config.php

Creare questo file copiandolo da quello di esempio, prima di eseguire l’installazione di Avantfax. Lo si trova all'interno di questo path: avantfax-3.3.5/avantfax/includes.
Di seguito sono riportate solo le differenze col file d’esempio. Per primi sono riportati i valori del file da me modificato:


Codice: Seleziona tutto
<    $FAXMAILUSER      = 'faxmaster';
>    $FAXMAILUSER      = 'faxmail';


<    $WWWUSER         = 'www-data';
>    $WWWUSER         = 'apache';


<    $dft_config_lang   = 'it';      // default system language (english)
>    $dft_config_lang   = 'en';      // default system language (english)


< //   define('WHITEPAGES', "http://www.whitepages.com/search/ReversePhone?full_phone="); // White Pages USA
<    define('WHITEPAGES', "http://www.paginebianche.it/execute.cgi?btt=1&tl=2&tr=106&qs="); // White Pages Italy
------
>    define('WHITEPAGES', "http://www.whitepages.com/search/ReversePhone?full_phone="); // White Pages USA
> //   define('WHITEPAGES', "http://www.paginebianche.it/execute.cgi?btt=1&tl=2&tr=106&qs="); // White Pages Italy


<    define('ENABLE_OCR_SUPPORT',    true); // set to true to enable support
<    define('OCR_BINARY',                    "/usr/bin/tesseract");
<    define('OCR_LANGUAGE',         "ita"); // Examples: eng, fra, deu, spa, ita
------
>    define('ENABLE_OCR_SUPPORT',    false); // set to true to enable support
>    define('OCR_BINARY',                    "/usr/local/bin/tesseract");
>    define('OCR_LANGUAGE',         "eng"); // Examples: eng, fra, deu, spa, ita


<    $HTML2PS                                = '/usr/bin/html2ps';   // path to html2ps
>    $HTML2PS                                = '/usr/local/bin/html2ps';   // path to html2ps


debian-prefs.txt:

Modificare il file in modo che risulti come segue:

Codice: Seleziona tutto
# DEFAULT INSTALL VALUES FOR Debian
#
# BEWARE: Only run the install script once or risk having duplicate
#         settings in your sendmail, sudo, and other configuration files
#
# The debian-install.sh script refers to this file
#

# The domain name for configuring email to fax
FAXDOMAIN=avantfax.dominio.dom # per l’impostazione del dominio (solo la parte dopo "avantfax" ovvero "dominio.dom") sentire con l’amministratore di rete

# The installation directory for AvantFAX
INSTDIR=/var/www/avantfax

# The root directory where HylaFAX bin files are stored (typically, /usr or /usr/local)
HYLADIR=/usr

# HylaFAX $SPOOL directory (typically, /var/spool/hylafax or /var/spool/fax)
SPOOL=/var/spool/hylafax

# These are the database settings AvantFAX will create and use
USER=avantfax
PASS=d58fe49
DB=avantfax

# if the MySQL password for root is set, specify it here
ROOTMYSQLPWD=avantfax # quando si installa mysql impostare questa stessa password per l’amministratore

# The user and group which Apache runs as (typically, apache, wwwrun, nobody, etc...)
HTTPDUSER=www-data
HTTPDGROUP=www-data



debian-install.sh:

Modificare il file in modo che risulti come segue (necessario altrimenti l’installazione non va a buon fine):

Codice: Seleziona tutto
#!/bin/sh
#
# AvantFAX install script for Debian
# This script will configure /etc/sudoers and the HylaFAX hyla.conf, config, config.<devid> files
# Only run once
#

# CHECK IF HYLAFAX IS INSTALLED

echo "Checking for HylaFAX installation"

hyla=`which sendfax`
if [ "$?" -ne "0" ]; then
  echo You must install and configure HylaFAX first
  exit
fi

. ./debian-prefs.txt

# INSTALL REQUIRED PACKAGES

echo "Installing required packages"

# removed libpq4
apt-get install apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libsqlite3-0 php5-cli php5-common mysql-server imagemagick libtiff5-dev netpbm libnetpbm10-dev giflib-tools libgif-dev sudo php-mail php-mail-mime php-file php-db php5-mysql psutils wdiff rsync postfix

pear channel-update pear.php.net
pear upgrade-all
pear upgrade --force pear
pear upgrade-all
pear install Mail Net_SMTP Mail_mime MDB2_driver_mysql

echo "Installing AvantFAX and configuring HylaFAX"

## SETUP SMARTY
chmod 0770 avantfax/includes/templates/admin_theme/templates_c/ avantfax/includes/templates/admin_theme/cache/  avantfax/includes/templates/main_theme/templates_c/ avantfax/includes/templates/main_theme/cache/
chown $HTTPDUSER:$HTTPDGROUP avantfax/includes/templates/admin_theme/templates_c/ avantfax/includes/templates/admin_theme/cache/  avantfax/includes/templates/main_theme/templates_c/ avantfax/includes/templates/main_theme/cache/

chmod 0755 avantfax/includes/faxcover.php avantfax/includes/faxrcvd.php avantfax/includes/notify.php avantfax/tools/update_contacts.php avantfax/tools/faxcover.php avantfax/includes/avantfaxcron.php avantfax/includes/dynconf.php

# cp avantfax/includes/local_config-example.php avantfax/includes/local_config.php

# echo "AdminGroup: apache" >> /etc/hylafax/hfaxd.conf

echo "CoverCmd:         $INSTDIR/includes/faxcover.php" >> /etc/hylafax/sendfax.conf

# SETUP AVANTFAX JOBFMT

cat >> /etc/hylafax/hyla.conf << EOF

#
## JobFmt for AvantFAX
#
JobFmt: "%-3j %3i %1a %15o %40M %-12.12e %5P %5D %7z %.25s"

EOF

# INSTALL AVANTFAX

mv avantfax $INSTDIR
chown -R $HTTPDUSER.$HTTPDGROUP $INSTDIR
chmod -R 0770 $INSTDIR/tmp $INSTDIR/faxes
chown -R $HTTPDUSER.uucp $INSTDIR/tmp $INSTDIR/faxes

# DISABLE SELINUX FOR APACHE

# echo "Disabling SELinux for Apache"

# setsebool -P httpd_disable_trans 1

# CONFIGURE AVANTFAX VIRTUALHOST

mv /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf.bak

cat >> /etc/apache2/sites-available/000-default.conf << EOF

<VirtualHost *:80>
    DocumentRoot $INSTDIR
    ServerName avantfax
    ErrorLog \${APACHE_LOG_DIR}/avantfax-error_log
    CustomLog \${APACHE_LOG_DIR}/avantfax-access_log common
</VirtualHost>
EOF

# START APACHE

/etc/init.d/apache2 restart # comando per Antix
# systemctl restart apache2 # comando per Ubuntu

# IMPORT MYSQL DATABASE

/etc/init.d/mysql start # comando per Antix
/etc/init.d/mysql restart #forse inutile ma eseguito per sicurezza # comando per Antix
# systemctl start mysql # comando per Ubuntu
# systemctl restart mysql # comando per Ubuntu

echo "## Creating AvantFAX MySQL database ##"
mysql --user=root --password=$ROOTMYSQLPWD -e "GRANT ALL ON $DB.* TO $USER@localhost IDENTIFIED BY \"$PASS\"" mysql
mysqladmin --default-character-set=utf8 --user=$USER --password=$PASS create $DB
mysql --user=$USER --password=$PASS $DB < create_tables.sql
mysqlshow --user=$USER --password=$PASS $DB

# SYMLINK AVANTFAX SCRIPTS

ln -s $INSTDIR/includes/faxrcvd.php $SPOOL/bin/faxrcvd.php
ln -s $INSTDIR/includes/dynconf.php $SPOOL/bin/dynconf.php
ln -s $INSTDIR/includes/notify.php  $SPOOL/bin/notify.php

# FIX FILEINFO

ln -s /usr/share/file/magic* /usr/share/misc/

# SETUP SUDO PERMISSIONS

echo "Setting up sudo"

cat /etc/sudoers | grep -v requiretty > /tmp/sudoers
echo "$HTTPDUSER ALL= NOPASSWD: /sbin/reboot, /sbin/halt, /usr/sbin/faxdeluser, /usr/sbin/faxadduser -u * -p * *" >> /tmp/sudoers
mv /etc/sudoers /etc/sudoers.orig
mv /tmp/sudoers /etc/sudoers
chmod 0440 /etc/sudoers
chown root.root  /etc/sudoers

# Make backup of HylaFAX configuration

mkdir /etc/hylafax/abackup
cp /etc/hylafax/config* /etc/hylafax/abackup/

# CONFIGURE MODEMS TO USE AVANTFAX

for i in `ls /etc/hylafax/config.*`; do
if [ "$i" != "/etc/hylafax/config.sav" ]; then
  if [ "$i" != "/etc/hylafax/config.devid" ]; then
    tilde=`echo $i | grep '~'`
    if [ "$?" -eq "1" ]; then
      if [ ! -L $i ]; then
cat >> $i << EOF

#
## AvantFAX
#
FaxRcvdCmd:     bin/faxrcvd.php
DynamicConfig:  bin/dynconf.php
UseJobTSI:      true

EOF
      fi
    fi
  fi
fi
done

cat >>  /etc/hylafax/config << EOF

#
## AvantFAX
#
NotifyCmd:      bin/notify.php

EOF

# ADD MODEMS TO DATABASE

for i in `ls /etc/hylafax/config.*`; do
if [ "$i" != "/etc/hylafax/config.sav" ]; then
  if [ "$i" != "/etc/hylafax/config.devid" ]; then
    tilde=`echo $i | grep '~'`
    if [ "$?" -eq "1" ]; then
      if [ -f $i ]; then
        modem=`echo $i | awk -F'/' '{print $4}' | awk -F'.' '{print $2}'`

        # ADD MODEMS TO AVANTFAX DATABASE
        mysql --user=$USER --password=$PASS -e "INSERT INTO Modems SET device='$modem', alias ='$modem'" $DB

        echo "Configuring $modem for AvantFAX"
      fi
    fi
  fi
fi
done

# ADD CRONTAB ENTRIES

echo "Setting up /etc/cron.d/avantfax"
printf "0 0 * * *\t$INSTDIR/includes/avantfaxcron.php -t 2\n" > /etc/cron.d/avantfax

$(which echo) -e "\nInstallation complete\n\n"

IP=`/sbin/ifconfig eth0 | grep "inet addr" | awk -F' ' '{print $2}' | awk -F':' '{print $2}'`

$(which echo) -e "Log into the Administrative interface at: http://$IP/admin/"
$(which echo) -e "Username: admin\nPassword: password"
# DONE #



email2fax.txt:

Modificare il file in modo che risulti come segue e fare attenzione alle variabili di cui alle ultime due righe che vanno lasciate commentate se non si dispone dei dati richiesti oppure vi vanno inseriti i dati richiesti e quindi decommentate :

Codice: Seleziona tutto
# This is the configuration file for Email 2 FAX
# Edit your domain name below and save this file
# before launching the scripts named below
#
# To setup Postfix run: ./setup-postfix.sh
# To setup Sendmail run: ./setup-sendmail.sh

FAXDOMAIN=avantfax.dominio.dom

# This user account must exist in your authentication system (ie. PAM, /etc/passwd, LDAP)
# in order for the Postfix configuration to work (ie. uucp).
# NOTE: Be sure to also set this value in local_config.php
# DEBIAN users may want to set this to faxmaster for postfix installs

FAXMAILUSER=faxmaster

# Variabili necessarie per ricevere mail anche da indirizzi esterni (decommentarle qualora si intenda valorizzarle):
# IP_PUBBLICO="inserire il proprio ip pubblico"  # non funziona
# DOMINIO_REGISTRATO="inserire qui il proprio dominio visibile da internet"



setup-postfix.sh:

Modificare il file in modo che risulti come segue (necessario altrimenti la configurazione non va a buon fine).
Fare attenzione alle eventuali righe da decommentare in base alle eventuali modifiche fatte all'interno del file email2fax.txt)

Codice: Seleziona tutto
#!/bin/bash
#
# This script will configure postfix for email to fax
# Only run once
#

. ./email2fax.txt

# INSTALL REQUIRED APPS IF NOT ALREADY INSTALLED

echo "Installing required packages"

yum -y install postfix || yast --install postfix || apt-get install postfix

# CONFIGURE POSTFIX

/usr/sbin/service postfix stop # comando per Antix
# systemctl stop postfix # comando per Ubuntu

echo "Configuring Email to FAX for domain ${FAXDOMAIN}"

cat >> /etc/postfix/master.cf << EOF
fax       unix  -       n       n       -       1       pipe
  flags= user=$FAXMAILUSER argv=/usr/bin/faxmail -d -n -NT \${user}

EOF

echo -e "${FAXDOMAIN}\tfax:localhost" >> /etc/postfix/transport

# Decommentare le due righe seguenti solo se nel file "email2fax.txt" sono state valorizzate le relative variabili nonché decommentate le relative righe (vedi le ultime due righe di tale file):
#echo -e "${IP_PUBBLICO}\tfax:localhost" >> /etc/postfix/transport  # tuttavia spedire mail ad un indirizzo contenente un ip non funziona (postfix le scarta)
#echo -e "${DOMINIO_REGISTRATO}\tfax:localhost" >> /etc/postfix/transport

# le prime due righe (esclusa quella commentata) create col comando seguente servono a far si che si possano ricevere mail anche dall'esterno in modo tale da inviare fax dal client di posta elettronica avvalendosi del proprio indirizzo mail:
echo -e "\n# mail2fax configuration\nvirtual_transport = transport_maps\nlocal_recipient_maps =\ntransport_maps = hash:/etc/postfix/transport\nfax_destination_recipient_limit = 1" >> /etc/postfix/main.cf

postmap /etc/postfix/transport


# CONFIGURE FAXMAIL

cat > /etc/hylafax/faxmail.conf << EOF
AutoCoverPage: false
TextPointSize: 12pt
Headers: Message-id Date Subject From
MailUser: $FAXMAILUSER

EOF

#/sbin/chkconfig postfix on
/usr/sbin/service postfix start #comando per Antix
# systemctl start postfix #comando per Ubuntu

echo "Done"

# DONE #


In fondo alla riga "mydestination = ..." del file /etc/postfix/main.cf, se si ha un dominio registrato visibile da internet che punta al nostro server fax (se cioé per inviare fax si userà numero_di_fax@proprio_dominio_registrato_visibile_su_internet), si dovrà aggiungere anche il nome di tale dominio.

Nel file "transport" (che verrà creato dallo script appena visto), se si ha un dominio visibile da internet, si dovrà impostare anche questa riga:
Codice: Seleziona tutto
proprio_dominio_registrato_visibile_su_internet     fax:localhost

Non l'ho verificato se funziona (postfix scarta le mail indirizzate ad indirizzi mail contenenti ip) ma forse, se si ha un ip statico si può provare ad aggiungere anche questa riga:
Codice: Seleziona tutto
proprio_ip_pubblico_statico     fax:localhost

Ogni volta che si modifica il file "transport" va poi eseguito il comando:

Codice: Seleziona tutto
sudo postmap /etc/postfix/transport

Queste stesse modifiche appena viste, relative al file transport, le si può ottenere anche decommentando le relative righe all'interno dello script di installazione di postfix setup-postfix.sh (vedi) e del precedente file di configurazione email2fax.txt (ultime due righe).


fixlink-faxcover.sh:

Questo script va eseguito soltanto in seguito ad un eventuale upgrade di Hylafax.
Modificarlo in modo da renderlo come segue:


Codice: Seleziona tutto
#!/bin/bash
# to use after upgrading HylaFAX

. ./debian-prefs.txt

mv $HYLADIR/bin/faxcover $HYLADIR/bin/faxcover.old
ln -s $INSTDIR/includes/faxcover.php $HYLADIR/bin/faxcover


**********************************************************************
**********************************************************************

Per installare Avantfax si dovranno modificare i files di cui sopra come indicato
e quindi eseguire, nell'ordine, gli script:

- debian-install.sh
- setup-postfix.sh

Tali script vanno eseguiti una sola volta altrimenti si rischia di pasticciare la configurazione dei file che vanno ad aggiornare/modificare, inserendovi i dati doppiamente.
Normalmente su un server-fax è bene non installare altro software tuttavia se si volesse farci girare, oltre al webserver Avantfax, anche altri webserver, fare riferimento alle istruzioni presenti sulla pagina web di Avantfax per la configurazione di Apache. Una letta anche alla pagina relativa all'installazione non farebbe di certo male.

A questo punto, non resta che collegarsi all'indirizzo IP del server fax all'interno della propria LAN, nel nostro caso:

http://192.168.1.10/admin e loggarsi con user: admin e password: password

Aggiungendo la seguente riga al file /etc/hosts dei pc client da cui si vuole accedere ad avantfax:

Codice: Seleziona tutto
192.168.1.10          avantfax.dominio.dom avantfax


sarà possibile raggiungere la pagina web di avantfax (all'interno della rete locale) anche digitando semplicemente http://avantfax.

Per i pc con installato MS Windows, il file da modificare sarà c:\Windows\System32\Drivers\etc\hosts.

Per inviare un fax tramite la posta elettronica basterà destinarlo (funziona solo dal server stesso o al limite dai pc della rete se opportunamente configurati sebbene dai pc non l'abbia verificato) a:

numero_di_fax@avantfax.dominio.dom

o anche da indirizzi mail esterni, se si è impostato il portforwarding della porta 25 verso il proprio server fax (sempre però che il provider non blocchi tale porta (verificarlo eventualmente su questa pagina)):

numero_di_fax@proprio_dominio_registrato_visibile_su_internet (funziona)

La forma seguente, invece non è accettata (almeno non in base a questa configurazione di postfix ma magari variando alcuni settaggi può darsi che si riesca a ricevere mail indirizzate anche al proprioi ip pubblico):

numero_di_fax@proprio_indirizzo_ip_pubblico_statico_o_dinamico (per esempio 02012345678@87.21.243.110) (non funziona tuttavia da verificare ulteriormente)

Ovviamente, se si ha un dominio registrato, si dovrà far in modo che il DNS punti al server fax e come già detto, impostare il portforward della porta 25.

Se non si ha un dominio e nemmeno un ip pubblico statico (ma di solito le aziende ce l'hanno), si può ottenere una sorta di dominio iscrivendosi a servizi quali "dyndns.org" (ne esistono anche di gratuiti tipo quelli offerti da http://freedns.afraid.org/). Ovviamente il router dovrà poi supportare la funzionalità relativa oppure si dovrà installare apposito software, fornito da dyndns, sul serverfax (quest'ultima cosa è da verificare in quanto vado a memoria e non ricordo di preciso come funzioni).

Con questo sistema chiunqe potrà inviare un fax usando il nostro fax server. Per ovviare a questa cosa bisognerà impostare postfix in maniera tale che riceva mail solo da determinati indirizzi di posta elettronica (per esempio dai soli indirizzi email degli impiegati della nostra azienda). Per fare ciò sarà necessario modificare il file /etc/postfix/main.cf aggiungendo queste righe:

Codice: Seleziona tutto
# Recipient restrictions:
smtpd_recipient_restrictions =
   check_sender_access
     hash:/etc/postfix/sender_access,
   reject


creare il file /etc/postfix/sender_access ed inserirvi all'interno quanto segue:

Codice: Seleziona tutto
# Whitelist for senders
#
indirizzo_mail_permesso@gmail.com     OK
indirizzo_mail_permesso@dominio.dom   OK
...
...


dopodiché eseguire il seguente comando:

Codice: Seleziona tutto
sudo postmap /etc/postfix/sender_access


ed infine riavviare postfix:

Codice: Seleziona tutto
sudo service postfix restart


E' bene che l'indirizzo mail del mittente corrisponda a quello del relativo utente creato tramite avantfax se si vuole che le mail inviate tramite posta elettronica possano essere visualizzate dall'account del proprietario (in pratica per inviare fax, il mittente dovrà usare lo stesso indirizzo email impostato nel proprio account di avantfax). Per esempio se con avantfax avrò creato un utente con mail mario.rossi@gmail.com, sarà bene che se questo utente vuole utilizzare la posta elettronica per inviare fax, li invii tramite quello stesso account di posta elettronica.

NOTE:

- Modificare, se lo si desidera, come di seguito indicato, la riga del file "/etc/default/hylafax" relativa all'archiviazione periodica dei fax:

Codice: Seleziona tutto
FAXQCLEAN_OPTS="-t -j 3024000 -A"


In pratica si utilizza la "-A" invece della "-a" se si vuole archiviare tutti i files e non solo quelli contrassegnati fin dall'inizio per l'archiviazione.

##################################################
##################################################

TO DO LIST:

- verificare/settare eventuale standby/sleep per un secodo disco fisso (se si usa una compact flash per la partizione di sistema ed un secondo disco per la directory "/var")
- verificare che il client yajHFC funzioni correttamene anche su Windows (e che possa convivere con Avantfax senza problemi)
- impostare le copie di backup su di un NAS
- impostare mirror su di un disco USB o di rete esterno attraverso il cosiddetto "automatic on-change backup" avvalendosi di programmi come "incron" o "inotify" e verificare che possano essere monitorati anche dischi esterni o di rete
- valutare l'uso di un RAID (fake, software)
- configurare smartmontools per il monitoraggio dello stato di salute del disco
- configurare lm-sensors per il controllo della temperatura della cpu e del sistema
- verificare la possibilità di ottenere il rapporto d'invio anche con Avantfax
- realizzare script per backup di Avantfax (oltre che Hylafax)
Ultima modifica di bingel il martedì 11 aprile 2017, 20:17, modificato 22 volte in totale.
Avatar utente
bingel
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4026
Iscrizione: aprile 2006

Re: [Guida] Installazione di Avantfax 3.3.5

Messaggioda bingel » domenica 2 aprile 2017, 14:34

Per scaricare Avantfax tramite wget:

Codice: Seleziona tutto
wget https://freefr.dl.sourceforge.net/project/avantfax/avantfax-3.3.5.tgz


Per scompattarlo:

Codice: Seleziona tutto
tar -xvzf avantfax-3.3.5.tgz


In allegato a questo messaggio trovate anche tutti i files di installazione/configurazione da me modificati (vedi precedente post). Posizionarsi all'interno della cartella avantfax-3.3.5 ed eseguire:

Codice: Seleziona tutto
wget http://forum.ubuntu-it.org/download/file.php?id=23439 -O files_modificati.tgz


quindi:

Codice: Seleziona tutto
tar -xvzf files_modificati.tgz


.
Allegati
files_modificati.tgz
Archivio contenente i files di installazione/configurazione da me modificati
(8.95 KiB) Scaricato 9 volte
Avatar utente
bingel
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4026
Iscrizione: aprile 2006

Re: [Guida] Installazione di Avantfax 3.3.5

Messaggioda bingel » venerdì 7 aprile 2017, 18:22

INVIO POSTA TRAMITE UN ACCOUNT SMTP ESTERNO

Accade spesso, a chi possiede un indirizzo IP pubblico dinamico, che i gestori di posta elettronica degli indirizzi a cui si inviano mail tramite postfix, si rifiutino di accettare tali mail in quanto provenienti da un indirizzo ip ritenuto scorretto, inaffidabile o cose del genere. L'unico sistema per ovviare a questo inconveniente è fornirsi di un IP statico o usare, per l'invio delle mail, un account più "famoso" (smarthost). Per impostare uno smarthost ovvero per inviare le mail tramite un server smtp esterno, per esempio il proprio account di "alice.it", sarà necessario modificare il file /etc/postfix/main.cf aggiungendo/modificando le righe seguenti:

Codice: Seleziona tutto
# Parametri per alice.it
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
relayhost = [out.alice.it]:587


e creare il file /etc/postfix/sasl_passwd al cui interno inserire le proprie credenziali nel modo seguente:

Codice: Seleziona tutto
[out.alice.it]:587  utente@alice.it:password


dopodiché renderlo di proprietà e leggibile dal solo utente "root":

Codice: Seleziona tutto
sudo chown root:root /etc/postfix/sasl_passwd
sudo chmod 400 /etc/postfix/sasl_passwd


ed infine creare il relativo database col seguente comando:

Codice: Seleziona tutto
sudo postmap /etc/postfix/sasl_passwd


Con altri fornitori, per esempio "gmail", cambiano un po' le cose (cercare dunque qualche guida con Google per come settare postfix inviando posta tramite gmail) in quanto oltre ad utilizzare un diverso tipo di autenticazione, è necessario loggarsi tramite interfaccia web (ovvero tramite la propria webmail) e smanettare anche tra le impostazioni di gmail in modo da aggiungere il nostro server tra i dispositivi a cui è permesso autenticarsi.

Fatto ciò sarà inoltre necessario installare il pacchetto libsasl2-modules:

Codice: Seleziona tutto
sudo apt-get install libsasl2-modules


e modificare il file /etc/postfix/transport aggiungendovi le seguenti righe all'inizio:

Codice: Seleziona tutto
root@proprio_dominio_registrato_visibile_su_internet            local:localhost
root@avantfax.dominio.dom                                       local:localhost


dopodiché eseguire nuovamente il comando:

Codice: Seleziona tutto
sudo postmap /etc/postfix/transport


Sarà infine necessario modificare l'indirizzo email dell'amministratore entrando nelle relative opzioni tramite l'interfaccia web di avantfax (come indirizzo mettere root@proprio_dominio_registrato_visibile_su_internet) e la seguente riga del file /var/www/avantfax/includes/local_config.php:

Codice: Seleziona tutto
define('ADMIN_EMAIL', 'root@proprio_dominio_registrato_visibile_su_internet');   // system return email address


EDIT: "alice.it" non è uno smarthost troppo affidabile (a volte le mail non vengono recapitate perché non ama che l'indirizzo del mittente sia diverso da quello con cui ci si è autenticati) per cui diciamo che questo è solo un esempio ed è meglio affidarsi ad uno smarthost più affidabile.
Avatar utente
bingel
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4026
Iscrizione: aprile 2006

Re: [Guida] Installazione di Avantfax 3.3.5

Messaggioda bingel » lunedì 10 aprile 2017, 18:58

MONITORAGGIO VENTOLE E TEMPERATURA SISTEMA TRAMITE LM-SENSORS

Installare il pacchetto lm-sensors:

Codice: Seleziona tutto
sudo apt-get install lm-sensors


e abilitarne l'esecuzione all'avvio avvalendosi dei comandi:

Codice: Seleziona tutto
sudo sysv-rc-conf


oppure

Codice: Seleziona tutto
sudo update-rc.d lm-sensors defaults


Eseguire sensors-detect in modo da rilevare i controller dei sensori installati sulla propria scheda madre e seguire le istruzioni a video. Se al termine della procedura, vengono indicati dei moduli da caricare all'avvio, prima di inserirli nel file indicato dalla procedura stessa, assicurarsi tramite il comando lsmod che non siano già caricati (nell'eventualità non sarà necessario fare nulla).

Creare il file /etc/sensors.d/sensors.conf quindi individuare i chip che ci interessano dentro il file /etc/sensors3.conf e ricopiare le relative sezioni nel file appena creato quindi procedere con le modifiche del caso (può essere necessario modificare alcuni settaggi come i limiti per gli allarmi e altre cose). Nel mio caso ho inserito/modificato quanto segue (lo riporto solo a titolo di esempio e, per me, di promemoria, in quanto riferito alla mia scheda madre CV860A. Ognuno dovrà adattare questo file alle proprie esigenze):

Codice: Seleziona tutto
chip "via686a-*"

    label in0 "Vcore"
    label in1 "+2.5V"
    label in2 "+3.3V"
    label in3 "+5V"
    label in4 "+12V"

    label fan1 "CPU Fan"
    ignore fan2 # "System Fan"

    label temp1 "CPU Temp"
    label temp2 "System Temp"
    ignore temp3 # "Unknown Temp"

    set in1_min  2.5 * 0.95
    set in1_max  2.5 * 1.05
    set in2_min  3.3 * 0.90
    set in2_max  3.3 * 1.10
    set in3_min  5.0 * 0.90
    set in3_max  5.0 * 1.10
    set in4_min 12.0 * 0.90
    set in4_max 12.0 * 1.10

    set fan1_div 1
    set fan1_min 5750

    set temp1_max 70
    set temp1_max_hyst 65
    set temp2_max 65
    set temp2_max_hyst 60


quindi riavviare lm-sensors:

Codice: Seleziona tutto
sudo service lm-sensors restart


Creare il file /usr/local/bin/alarms e dopo averlo reso di proprietà dell'utente root nonché avergli attribuito i permessi di esecuzione (755), ricopiarvi all'interno quanto segue (adattare in base al proprio sistema ...inoltre questo è senz'altro uno script che può essere migliorato):

Codice: Seleziona tutto
#!/bin/bash

##########################################################

EMAIL_ADDRESS="proprio_account@dominio.dom"
SUBJECT="Allarme sensori fax server"
SHUTDOWN_CMD="/sbin/shutdown -h -P now"
ALARMS_DIR="/var/cache/alarms"
FAN_FLAG="$ALARMS_DIR/fan"
CPU_FLAG="$ALARMS_DIR/cpu"
SYS_FLAG="$ALARMS_DIR/sys"

##########################################################

mkdir -p $ALARMS_DIR
if [ $(find $ALARMS_DIR -maxdepth 0 -empty | wc -l) -eq 1 ]; then
  touch -t 7001010000 "$FAN_FLAG"
  touch -t 7001010000 "$CPU_FLAG"
  touch -t 7001010000 "$SYS_FLAG"
fi

##########################################################

fan_rpm=$(/usr/bin/sensors -u | grep "fan1_input:" | cut -d ":" -f 2 | cut -b 2- | cut -d "." -f 1)
fan_rpm_min=$(/usr/bin/sensors -u | grep "fan1_min:" | cut -d ":" -f 2 | cut -b 2- | cut -d "." -f 1)
fan_alarm=$(/usr/bin/sensors -u | grep "fan1_alarm:" | cut -d ":" -f 2 | cut -b 2- | cut -d "." -f 1)

cpu_temp=$(/usr/bin/sensors -u | grep "temp1_input:" | cut -d ":" -f 2 | cut -b 2- | cut -d "." -f 1)
cpu_temp_max=$(/usr/bin/sensors -u | grep "temp1_max:" | cut -d ":" -f 2 | cut -b 2- | cut -d "." -f 1)
cpu_alarm=$(/usr/bin/sensors -u | grep "temp1_alarm:" | cut -d ":" -f 2 | cut -b 2- | cut -d "." -f 1)

sys_temp=$(/usr/bin/sensors -u | grep "temp2_input:" | cut -d ":" -f 2 | cut -b 2- | cut -d "." -f 1)
sys_temp_max=$(/usr/bin/sensors -u | grep "temp2_max:" | cut -d ":" -f 2 | cut -b 2- | cut -d "." -f 1)
sys_alarm=$(/usr/bin/sensors -u | grep "temp2_alarm:" | cut -d ":" -f 2 | cut -b 2- | cut -d "." -f 1)

##########################################################

if [ $fan_rpm -eq 0 ]; then
  echo "ALLARME ROSSO!: Il numero di RPM della CPU_FAN e' uguale a 0. Il sistema e' stato immediatamente spento." | /usr/bin/mail -s "$SUBJECT" "$EMAIL_ADDRESS"
  $SHUTDOWN_CMD
fi

if [ $fan_alarm -eq 1 ]; then
  p_time=$(stat -t $FAN_FLAG | cut -d " " -f 12)
  if [ $(($(date +%s)-$p_time)) -ge 86400 ]; then
    echo "ALLARME!: Il numero di RPM della CPU_FAN ($fan_rpm RPM) e' sceso al di sotto del valore limite di $fan_rpm_min RPM." | /usr/bin/mail -s "$SUBJECT" "$EMAIL_ADDRESS"
    touch $FAN_FLAG
  fi
fi

##########################################################

if [ $cpu_temp -ge $(($cpu_temp_max-10)) ]; then
  if [ $cpu_alarm -eq 1 ]; then
    echo "ALLARME ROSSO!: La temperatura della CPU ($cpu_temp C) ha raggiunto il valore limite. Il sistema e' stato immediatamente spento." | /usr/bin/mail -s "$SUBJECT" "$EMAIL_ADDRESS"
    $SHUTDOWN_CMD
  else
    p_time=$(stat -t $CPU_FLAG | cut -d " " -f 12)
    if [ $(($(date +%s)-$p_time)) -ge 86400 ]; then
      echo "ALLARME!: La temperatura della CPU ($cpu_temp C) e' vicina al valore limite di $cpu_temp_max C." | /usr/bin/mail -s "$SUBJECT" "$EMAIL_ADDRESS"
      touch $CPU_FLAG
    fi
  fi 
fi

##########################################################

if [ $sys_temp -ge $(($sys_temp_max-10)) ]; then
  if [ $sys_alarm -eq 1 ]; then
    echo "ALLARME ROSSO!: La temperatura del sistema ($sys_temp C) ha raggiunto il valore limite. Il sistema e' stato immediatamente spento." | /usr/bin/mail -s "$SUBJECT" "$EMAIL_ADDRESS"
    $SHUTDOWN_CMD
  else
    p_time=$(stat -t $SYS_FLAG | cut -d " " -f 12)
    if [ $(($(date +%s)-$p_time)) -ge 86400 ]; then
      echo "ALLARME!: La temperatura del sistema ($sys_temp C) e' vicina al valore limite di $sys_temp_max C." | /usr/bin/mail -s "$SUBJECT" "$EMAIL_ADDRESS"
      touch $SYS_FLAG
    fi
  fi
fi

##########################################################

# END


Questo file spedirà delle mail all'indirizzo indicato quando determinati limiti verranno superati e oltre all'invio delle mail provvederà anche allo spegnimento del sistema qualora la situazione dovesse farsi critica.

Editare il crontab di root:

Codice: Seleziona tutto
sudo crontab -e


aggiungendovi la seguente riga:

Codice: Seleziona tutto
*/2 * * * * /usr/local/bin/alarms


per eseguire lo script di monitoraggio ogni 2 minuti.


N.B. - Modifiche da apportare allo script prima di poterlo utilizzare:

- il file "/etc/sensors.d/sensors.conf"
- variabili presenti in testa allo script (in particolar modo: indirizzo email ed oggetto della mail. Eventualmente: comando di spegnimento)
- intervallo di esecuzione dello script (volendo lo si può abbassare ad un minuto (eliminando il "/2")
Ultima modifica di bingel il martedì 11 aprile 2017, 20:24, modificato 11 volte in totale.
Avatar utente
bingel
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4026
Iscrizione: aprile 2006

Re: [Guida] Installazione di Avantfax 3.3.5

Messaggioda bingel » lunedì 10 aprile 2017, 19:15

SETTARE UNA SORTA DI BACKUP/MIRRORING ATTRAVERSO L'USO DI INOTIFYWAIT

Tramite inotifywait ho fatto in modo che ogni volta che vengono fatte modifiche (creati, cancellati, modificati o spostati dei files) all'interno di determinate directory contenute in /var/spool/hylafax/, tali modifiche vengano riflesse anche su un disco usb esterno.

Installare inotify-tools:

Codice: Seleziona tutto
sudo apt-get install inotify-tools


quindi creare il file /usr/local/bin/usb_backup e dopo averlo reso di proprietà di root ed avergli attribuito i permessi di esecuzione (755), ricopiarvi all'interno quanto segue:

Codice: Seleziona tutto
#!/bin/bash

usb_disk="/media/etichetta_disco_usb"
inotify_list="/home/faxmaster/inotify_list"

inotifywaitPID=$(pgrep -u root -f "inotifywait -qmre create,delete,modify,moved_from,moved_to --format %w%f %e --fromfile $inotify_list")
usb_backupPID=$(pgrep -u root -f "/usr/local/bin/usb_backup")

for i in $inotifywaitPID; do
  if [ $i -lt $$ ]; then
     kill -9 $i
  fi
done

for i in $usb_backupPID; do
  if [ $i -lt $$ ]; then
     kill -9 $i
  fi
done

while read stringa; do
  evento=$(rev <<< $stringa | cut -d " " -f 1 | rev)
  nome_file=$(rev <<< $stringa | cut -d " " -f 2- | rev)
  if [ "$evento" == "DELETE" ] || [ "$evento" == "MOVED_FROM" ]; then
    rm -fr "$usb_disk$nome_file"
  else
    cp -fa --parents "$nome_file" "$usb_disk"
  fi
done < <(inotifywait -qmre create,delete,modify,moved_from,moved_to --format "%w%f %e" --fromfile $inotify_list)


La directory /media/etichetta_disco_usb dovrà già esistere al momento in cui viene eseguito lo script. Sarà necessario modificare tale path con quello in cui viene montato il disco fisso usb esterno. Forse conviene creare un punto di mount manualmente e montare il disco in tale directory inserendo una riga relativa anche nel file /etc/fstab (mi pare sia possibile anche per i media rimovibili tuttavia non ricordo con precisione).

Inserire la seguente riga in fondo al file /etc/inittab:

Codice: Seleziona tutto
id01:2345:respawn:/bin/bash /usr/local/bin/usb_backup


in modo da eseguire lo script all'avvio del sistema e rieseguirlo (respawn) nel caso, per qualche ragione, dovesse "morire".

Creare il file /home/faxmaster/inotify_list ed inserirvi l'elenco delle directories da monitorare (quelle che iniziano per @ sono escluse dal monitoraggio):

Codice: Seleziona tutto
/var/spool/hylafax/etc
/var/spool/hylafax/archive
/var/spool/hylafax/docq
/var/spool/hylafax/pollq
/var/spool/hylafax/sendq
/var/spool/hylafax/recvq
/var/spool/hylafax/doneq
@/var/spool/hylafax/etc/abackup
@/var/spool/hylafax/etc/templates


Per avviare lo script riavviare il sistema o eseguire il comando:

Codice: Seleziona tutto
sudo init q


N.B. - Modifiche da apportare allo script prima di poterlo utilizzare:

Adattare le seguenti due variabili alle proprie esigenze:

- usb_disk="/media/etichetta_disco_usb"
- inotify_list="/home/faxmaster/inotify_list"
Ultima modifica di bingel il martedì 11 aprile 2017, 13:09, modificato 8 volte in totale.
Avatar utente
bingel
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4026
Iscrizione: aprile 2006

Re: [Guida] Installazione di Avantfax 3.3.5

Messaggioda bingel » lunedì 10 aprile 2017, 20:14

MONITORARE LO STATO DI SALUTE DEI DISCHI TRAMITE SMARTMONTOOLS

Installare smartmontools attraverso il seguente comando:

Codice: Seleziona tutto
sudo apt-get install smartmontools


ed abilitarne l'esecuzione all'avvio tramite il comando (non so se sia necessario o se venga già fatto in fase di installazione, non me lo ricordo ...verificarlo da soli):

Codice: Seleziona tutto
sudo sysv-rc-conf


oppure

Codice: Seleziona tutto
sudo update-rc.d smartmontools defaults


Modificare il file /etc/smartd.conf inserendovi la seguente riga al posto di quella già esistente (l'unica già decommentata):

Codice: Seleziona tutto
DEVICESCAN -o on -s (S/../.././13) -S on -v 197,increasing -v 198,increasing -a -R 5! -W 0,0,56 -d removable -n standby,48,q -m proprio_account@dominio.dom -M exec /usr/share/smartmontools/smartd-runner


Le varie opzioni sono illustrate nel manuale di smartd.conf:

Codice: Seleziona tutto
man smartd.conf


Se oltre a ricevere delle notifiche sulla posta elettronica, si vuole spegnere il sistema qualora vengano rilevati problemi seri (critici) sul disco (temperatura oltre il livello critico, previsione di guasto imminente, etc.), creare il file /etc/smartmontools/run.d/99shutdown ed inserirvi all'interno quanto segue:

Codice: Seleziona tutto
#!/bin/bash

# Seriale del disco di sistema (ottenibile con il comando "inxi -xx -D" oppure "sudo lshw -C disk")
system_disk_serial="XXXXXXXX"

# Estrapolazione del seriale dalla variabile SMARTD_DEVICEINFO
device_serial=$(cut -d "," -f 2 <<< $SMARTD_DEVICEINFO | cut -d ":" -f 2)

# Esegue lo spegnimento del sistema solo se è il disco di sistema ad avere problemi
if [ "$device_serial" == "$system_disk_serial"); then
  sleep 10
  shutdown -h -P now
fi


Abilitare infine l'esecuzione di smartd all'avvio del sistema decommentando la seguente riga nel file /etc/default/smartmontools:

Codice: Seleziona tutto
start_smartd=yes



N.B. - Modifiche da apportare al codice di cui sopra prima di poterlo utilizzare:

- indirizzo email all'interno del file "/etc/smartd.conf"
- numero seriale del disco fisso di sistema all'interno del file "/etc/smartmontools/run.d/99shutdown"
Avatar utente
bingel
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4026
Iscrizione: aprile 2006

Re: [Guida] Installazione di Avantfax 3.3.5

Messaggioda bingel » martedì 11 aprile 2017, 20:11

METTERE A RIPOSO IL DISCO USB ESTERNO (DI BACKUP)

Probabilmente può essere fatto anche semplicemente installando e quindi configurando a dovere hdparm ma con questa utilità non sempre i dischi usb esterni reagiscono bene.

Utilizzeremo pertanto hd-idle andando a scaricarci il sorgente relativo:

Codice: Seleziona tutto
wget https://downloads.sourceforge.net/project/hd-idle/hd-idle-1.04.tgz


e poi a compilarcelo.
Per poterlo compilare sarà necessario installare anche i seguenti pacchetti:

Codice: Seleziona tutto
sudo apt-get install build-essential fakeroot debhelper dpkg-dev


Quindi sarà necessario scompattare il sorgente scaricato:

Codice: Seleziona tutto
tar -xvzf hd-idle-1.04.tgz


e posizionarsi all'interno della directory creata (hd-idle) dove impartiremo il seguente comando:

Codice: Seleziona tutto
dpkg-buildpackage -rfakeroot


In tal modo, nella directory superiore, verrà creato un pacchetto ".deb" (oltre ad altri pacchetti di cui possiamo sbarazzarcene) che andremo ad installare così:

Codice: Seleziona tutto
cd ..
sudo dpkg -i hd-idle_*deb


Fatto ciò sarà necessario modificare il file /etc/default/hd-idle in questo modo:

Codice: Seleziona tutto
START_HD_IDLE=true
HD_IDLE_OPTS="-i 0 -a /dev/disk/by-id/ata-XXXXXXXXXX_XXXXXXXX -i 300 -l /var/log/hd-idle.log"


Dove "ata-XXXXXXXXXX_XXXXXXXX" dovrà essere modificato con l'ID del proprio disco USB (quello che si vuole mettere in standby).

ed infine attivare hd-idle:

Codice: Seleziona tutto
sudo service hd-idle start


Per ottenere l'ID del disco:

Codice: Seleziona tutto
ls -lai /dev/disk/by-id


Vedi:

Codice: Seleziona tutto
man hd-idle


per ulteriori informazioni relativamente ai parametri utilizzati.

Tenere ben presente che è inutile tentare di mettere in standby il disco di sistema (verrà riattivato istantaneamente a causa delle continue scritture che linux fa su determinati files).


N.B. - Modifiche da apportare al codice di cui sopra prima di poterlo utilizzare:

- ID del disco da mettere in standby
Avatar utente
bingel
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4026
Iscrizione: aprile 2006


Torna a Applicazioni professionali

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 3 ospiti