| Line 1... |
Line 1... |
| 1 |
#!/bin/bash
|
1 |
#!/bin/bash
|
| 2 |
# $Id: alcasar-archive.sh 1303 2014-01-15 18:03:47Z richard $
|
2 |
# $Id: alcasar-archive.sh 1308 2014-01-22 22:23:54Z richard $
|
| 3 |
|
3 |
|
| 4 |
# alcasar-archive.sh
|
4 |
# alcasar-archive.sh
|
| 5 |
# by Franck BOUIJOUX and REXY
|
5 |
# by Franck BOUIJOUX and REXY
|
| 6 |
# This script is distributed under the Gnu General Public License (GPL)
|
6 |
# This script is distributed under the Gnu General Public License (GPL)
|
| 7 |
|
7 |
|
| Line 18... |
Line 18... |
| 18 |
DIR_SAVE="/var/Save" # répertoire accessible par webs
|
18 |
DIR_SAVE="/var/Save" # répertoire accessible par webs
|
| 19 |
DIR_LOG="/var/log" # répertoire local des log
|
19 |
DIR_LOG="/var/log" # répertoire local des log
|
| 20 |
|
20 |
|
| 21 |
#DIR_SERVICE="squid httpd firewall" # répertoires contenant des logs utiles à exporter
|
21 |
#DIR_SERVICE="squid httpd firewall" # répertoires contenant des logs utiles à exporter
|
| 22 |
DIR_BASE="$DIR_SAVE/base" # répertoire de sauvegarde de la base de données usagers
|
22 |
DIR_BASE="$DIR_SAVE/base" # répertoire de sauvegarde de la base de données usagers
|
| 23 |
DIR_ARCHIVE="$DIR_SAVE/archive" # répertoire de sauvegarde de la base de données usagers
|
23 |
DIR_ARCHIVE="$DIR_SAVE/archive" # répertoire de sauvegarde des archives de log
|
| 24 |
NOW="$(date +%G%m%d-%Hh%M)" # date et heure du moment
|
24 |
NOW="$(date +%G%m%d-%Hh%M)" # date et heure du moment
|
| 25 |
DIR_TMP="/tmp/archive-$NOW" # Répertoire temporaire d'export
|
25 |
DIR_TMP="/tmp/archive-$NOW" # Répertoire temporaire d'export
|
| 26 |
FILE="archive-$NOW.tar.gz" # Nom du fichier de l'archive
|
26 |
FILE="archive-$NOW.tar.gz" # Nom du fichier de l'archive
|
| 27 |
EXPIRE_DAY=365 # Nbre de jour avant suppression des fichiers journaux
|
27 |
EXPIRE_DAY=365 # Nbre de jour avant suppression des fichiers journaux
|
| 28 |
CRYPT="0" # chiffrement des logs ( 0=non / 1=oui) --> Si oui alors la signature est automatiquement activée
|
28 |
CRYPT="0" # chiffrement des logs ( 0=non / 1=oui) --> Si oui alors la signature est automatiquement activée
|
| Line 30... |
Line 30... |
| 30 |
SIGN="0" # Signature/empreinte des logs ( 0=non / 1=oui ) ATTENTION : nécessite la clé privée !!!
|
30 |
SIGN="0" # Signature/empreinte des logs ( 0=non / 1=oui ) ATTENTION : nécessite la clé privée !!!
|
| 31 |
# Signature of log files ( 0=no / 1=yes ) ATTENTION : need the private key !!!
|
31 |
# Signature of log files ( 0=no / 1=yes ) ATTENTION : need the private key !!!
|
| 32 |
GPG_USER="" # utilisateur autorisé à déchiffrer les logs. Sa clé publique doit être connu dans le portefeuille gnupg de root (/root/.gnupg)
|
32 |
GPG_USER="" # utilisateur autorisé à déchiffrer les logs. Sa clé publique doit être connu dans le portefeuille gnupg de root (/root/.gnupg)
|
| 33 |
# user allowed to decrypt the log files. Its public key must be known in the root keyring (/root/.gnupg)
|
33 |
# user allowed to decrypt the log files. Its public key must be known in the root keyring (/root/.gnupg)
|
| 34 |
|
34 |
|
| 35 |
usage="Usage: alcasar-archive.sh {--clean or -c} | {--now or -n}"
|
35 |
usage="Usage: alcasar-archive.sh {--live or -l} | {--now or -n} | {--clean or -c}"
|
| 36 |
|
36 |
|
| 37 |
nb_args=$#
|
37 |
nb_args=$#
|
| 38 |
args=$1
|
38 |
args=$1
|
| 39 |
if [ $nb_args -eq 0 ]
|
39 |
if [ $nb_args -eq 0 ]
|
| 40 |
then
|
40 |
then
|
| Line 112... |
Line 112... |
| 112 |
fi
|
112 |
fi
|
| 113 |
rm -rf /tmp/archive-*
|
113 |
rm -rf /tmp/archive-*
|
| 114 |
chown root:apache $DIR_ARCHIVE/*
|
114 |
chown root:apache $DIR_ARCHIVE/*
|
| 115 |
;;
|
115 |
;;
|
| 116 |
--live | -l)
|
116 |
--live | -l)
|
| - |
|
117 |
mkdir -p $DIR_ARCHIVE
|
| 117 |
mkdir -p /tmp/live
|
118 |
mkdir -p /tmp/live
|
| 118 |
gap=$(($(date +%d)-1))
|
119 |
gap=$(($(date +%d)-1))
|
| 119 |
cd /var/log/nfsen/profiles-data/live/ipt_netflow
|
120 |
cd /var/log/nfsen/profiles-data/live/ipt_netflow
|
| 120 |
find . -mtime -$gap -name 'nfcapd.[0-9]*' | xargs tar -cf /tmp/live/tracability-ALL-$NOW.tar;
|
121 |
find . -mtime -$gap -name 'nfcapd.[0-9]*' | xargs tar -cf /tmp/live/tracability-ALL-$NOW.tar;
|
| 121 |
/usr/local/sbin/alcasar-mysql.sh --dump
|
122 |
/usr/local/sbin/alcasar-mysql.sh --dump
|
| 122 |
mv $(echo $(ls -rt $DIR_BASE/radius-*.sql | tail -n 1 -)) /tmp/live/
|
123 |
mv $(echo $(ls -rt $DIR_BASE/radius-*.sql | tail -n 1 -)) /tmp/live/
|
| 123 |
cp /var/log/firewall/tracability.log /tmp/live/tracability-HTTP-$NOW.log
|
124 |
cp /var/log/firewall/tracability.log /tmp/live/tracability-HTTP-$NOW.log
|
| 124 |
tar -czf $DIR_ARCHIVE/tracability-$NOW.tar.gz /tmp/live/*
|
125 |
tar -czf $DIR_ARCHIVE/tracability-$NOW.tar.gz /tmp/live/*
|
| 125 |
rm -rf /tmp/live
|
126 |
rm -rf /tmp/live
|
| 126 |
;;
|
127 |
;;
|
| 127 |
--update | -u)
|
- |
|
| 128 |
# Mise à niveau de l'architecture d'export/archivage
|
- |
|
| 129 |
[ -d /tmp/save ] || mkdir -p /tmp/save
|
- |
|
| 130 |
[ -d $DIR_ARCHIVE/ ] || mkdir -p $DIR_ARCHIVE/ # utile une seule fois mais crée le répertoire si nécessaire
|
- |
|
| 131 |
;;
|
- |
|
| 132 |
*)
|
128 |
*)
|
| 133 |
echo "Unknown argument :$1";
|
129 |
echo "Unknown argument :$1";
|
| 134 |
echo "$usage"
|
130 |
echo "$usage"
|
| 135 |
exit 1
|
131 |
exit 1
|
| 136 |
;;
|
132 |
;;
|