1329 lines
49 KiB
Bash
Executable File
1329 lines
49 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
working_dir="$(dirname $(realpath $0))"
|
|
conf_file="${working_dir}/conf/create_summary_websites.conf"
|
|
|
|
|
|
# -------------
|
|
# - Variable settings
|
|
# -------------
|
|
|
|
declare -a apache_vhost_dir_arr
|
|
declare -a _all_vhost_files_arr
|
|
declare -a _all_document_root_dirs_arr
|
|
|
|
PHP_VERIONS_SUPPORTED="5.3 5.4 5.5 5.6 7.0.7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3"
|
|
|
|
declare -i number_websites_53=0
|
|
declare -i number_websites_54=0
|
|
declare -i number_websites_55=0
|
|
declare -i number_websites_56=0
|
|
declare -i number_websites_70=0
|
|
declare -i number_websites_71=0
|
|
declare -i number_websites_72=0
|
|
declare -i number_websites_73=0
|
|
declare -i number_websites_74=0
|
|
declare -i number_websites_80=0
|
|
declare -i number_websites_81=0
|
|
declare -i number_websites_82=0
|
|
declare -i number_websites_83=0
|
|
declare -i number_redirected=0
|
|
declare -i number_parked=0
|
|
declare -i number_mod_php=0
|
|
declare -i number_php_fpm=0
|
|
declare -i number_php_fcgid=0
|
|
declare -i number_overall=0
|
|
declare -i number_no_php_assigned=0
|
|
declare -i number_not_considered=0
|
|
|
|
|
|
# -------------
|
|
# --- Some functions
|
|
# -------------
|
|
|
|
clean_up() {
|
|
|
|
# Perform program exit housekeeping
|
|
rm -f $_tmp_filename_summary
|
|
rm -f $_tmp_filename_redirected
|
|
rm -f $_tmp_filename_parked
|
|
rm -f $_tmp_filename_mod_php
|
|
rm -f $_tmp_filename_php_fpm
|
|
rm -f $_tmp_filename_php_fcgid
|
|
rm -f $_tmp_filename_php_53
|
|
rm -f $_tmp_filename_php_54
|
|
rm -f $_tmp_filename_php_55
|
|
rm -f $_tmp_filename_php_56
|
|
rm -f $_tmp_filename_php_70
|
|
rm -f $_tmp_filename_php_71
|
|
rm -f $_tmp_filename_php_72
|
|
rm -f $_tmp_filename_php_73
|
|
rm -f $_tmp_filename_php_74
|
|
rm -f $_tmp_filename_php_80
|
|
rm -f $_tmp_filename_php_81
|
|
rm -f $_tmp_filename_php_82
|
|
rm -f $_tmp_filename_php_83
|
|
rm -f $_tmp_filename_not_considered
|
|
rm -f $_tmp_filename_no_php_assigned
|
|
exit $1
|
|
}
|
|
|
|
# - Check if a given array (parameter 2) contains a given string (parameter 1)
|
|
# -
|
|
containsElement () {
|
|
local e
|
|
for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
|
|
return 1
|
|
}
|
|
|
|
stringContain() {
|
|
[ -z "${2##*$1*}" ] && [ -z "$1" -o -n "$2" ]
|
|
}
|
|
|
|
# - Remove leading/trailling whitespaces
|
|
# -
|
|
trim() {
|
|
local var="$*"
|
|
var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
|
|
var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters
|
|
echo -n "$var"
|
|
}
|
|
|
|
fatal(){
|
|
echo ""
|
|
echo -e " [ Fatal ] $*"
|
|
echo ""
|
|
echo -e "\tScript terminated.."
|
|
echo ""
|
|
clean_up 1
|
|
}
|
|
|
|
|
|
trap clean_up SIGHUP SIGINT SIGTERM
|
|
|
|
|
|
# -------------
|
|
# - Load Settings from configuration file get_summary_websites.conf
|
|
# -------------
|
|
|
|
if [[ -f "$conf_file" ]]; then
|
|
source "$conf_file" > /dev/null 2>&1
|
|
if [[ $? -ne 0 ]]; then
|
|
fatal "Reading Configuration '$conf_file' failed!"
|
|
fi
|
|
fi
|
|
|
|
|
|
if [[ -z "$WEB_DOCROOT" ]]; then
|
|
fatal "Missing value for variable 'WEB_DOCROOT'!"
|
|
fi
|
|
|
|
if [[ -z "$DST_PATH_STATS" ]]; then
|
|
DST_PATH_STATS="${WEB_DOCROOT}/website-stats"
|
|
fi
|
|
|
|
if [[ ! -d "$DST_PATH_STATS" ]]; then
|
|
mkdir "$DST_PATH_STATS" > /dev/null 2>&1
|
|
if [[ $? -ne 0 ]]; then
|
|
fatal "Creation of directory '$DST_PATH_STATS' failed!"
|
|
fi
|
|
fi
|
|
|
|
if [[ -z "$DST_PATH_STATS" ]]; then
|
|
fatal "Destination Path for statistics (parameter 'DST_PATH_STATS') not found!"
|
|
fi
|
|
|
|
if [[ -z "$DST_DIR_CSV" ]] ; then
|
|
DST_DIR_CSV="${DST_PATH_STATS}/csv-files-website-stats"
|
|
fi
|
|
|
|
if [[ ! -d "$DST_DIR_CSV" ]]; then
|
|
mkdir $DST_DIR_CSV > /dev/null 2>&1
|
|
if [[ $? -ne 0 ]]; then
|
|
fatal "Creation of directory '$DST_DIR_CSV' failed!"
|
|
fi
|
|
fi
|
|
|
|
if [[ -z "${WEB_DIR_CSV}" ]]; then
|
|
WEB_DIR_CSV="/website-stats/csv-files-website-stats"
|
|
fi
|
|
|
|
_tmp_filename_summary=$(mktemp)
|
|
filename_summary="${DST_DIR_CSV}/WEBSITES_SUMMARY.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_summary.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_summary)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_summary");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_summary
|
|
echo ";" >> $filename_summary
|
|
|
|
_tmp_filename_redirected=$(mktemp)
|
|
filename_redirected="${DST_DIR_CSV}/WEBSITES_REDIRECTED.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_redirected.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_redirected)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_redirected");
|
|
?>
|
|
EOF
|
|
echo "Website; ;Alias; ;Redirected to; ;VHost file" > $filename_redirected
|
|
echo ";" >> $filename_redirected
|
|
|
|
_tmp_filename_parked=$(mktemp)
|
|
filename_parked="${DST_DIR_CSV}/WEBSITES_PARKED.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_parked.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_parked)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_parked");
|
|
?>
|
|
EOF
|
|
echo "Website; ;Alias; ;VHost file" > $filename_parked
|
|
echo ";" >> $filename_parked
|
|
|
|
_tmp_filename_mod_php=$(mktemp)
|
|
filename_mod_php="${DST_DIR_CSV}/WEBSITES_MOD_PHP.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_mod_php.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_mod_php)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_mod_php");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_mod_php
|
|
echo ";" >> $filename_mod_php
|
|
|
|
_tmp_filename_php_fpm=$(mktemp)
|
|
filename_php_fpm="${DST_DIR_CSV}/WEBSITES_PHP_FPM.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_php_fpm.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_php_fpm)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_php_fpm");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_php_fpm
|
|
echo ";" >> $filename_php_fpm
|
|
|
|
_tmp_filename_php_fcgid=$(mktemp)
|
|
filename_php_fcgid="${DST_DIR_CSV}/WEBSITES_PHP_FCGID.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_php_fcgid.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_php_fcgid)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_php_fcgid");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_php_fcgid
|
|
echo ";" >> $filename_php_fcgid
|
|
|
|
_tmp_filename_php_53=$(mktemp)
|
|
filename_php_53="${DST_DIR_CSV}/WEBSITES_PHP_53.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_php_53.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_php_53)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_php_53");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_php_53
|
|
echo ";" >> $filename_php_53
|
|
|
|
_tmp_filename_php_54=$(mktemp)
|
|
filename_php_54="${DST_DIR_CSV}/WEBSITES_PHP_54.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_php_54.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_php_54)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_php_54");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_php_54
|
|
echo ";" >> $filename_php_54
|
|
|
|
_tmp_filename_php_55=$(mktemp)
|
|
filename_php_55="${DST_DIR_CSV}/WEBSITES_PHP_55.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_php_55.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_php_55)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_php_55");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_php_55
|
|
echo ";" >> $filename_php_55
|
|
|
|
_tmp_filename_php_56=$(mktemp)
|
|
filename_php_56="${DST_DIR_CSV}/WEBSITES_PHP_56.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_php_56.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_php_56)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_php_56");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_php_56
|
|
echo ";" >> $filename_php_56
|
|
|
|
_tmp_filename_php_70=$(mktemp)
|
|
filename_php_70="${DST_DIR_CSV}/WEBSITES_PHP_70.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_php_70.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_php_70)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_php_70");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_php_70
|
|
echo ";" >> $filename_php_70
|
|
|
|
_tmp_filename_php_71=$(mktemp)
|
|
filename_php_71="${DST_DIR_CSV}/WEBSITES_PHP_71.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_php_71.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_php_71)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_php_71");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_php_71
|
|
echo ";" >> $filename_php_71
|
|
|
|
_tmp_filename_php_72=$(mktemp)
|
|
filename_php_72="${DST_DIR_CSV}/WEBSITES_PHP_72.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_php_72.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_php_72)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_php_72");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_php_72
|
|
echo ";" >> $filename_php_72
|
|
|
|
_tmp_filename_php_73=$(mktemp)
|
|
filename_php_73="${DST_DIR_CSV}/WEBSITES_PHP_73.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_php_73.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_php_73)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_php_73");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_php_73
|
|
echo ";" >> $filename_php_73
|
|
|
|
_tmp_filename_php_74=$(mktemp)
|
|
filename_php_74="${DST_DIR_CSV}/WEBSITES_PHP_74.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_php_74.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_php_74)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_php_74");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_php_74
|
|
echo ";" >> $filename_php_74
|
|
|
|
_tmp_filename_php_80=$(mktemp)
|
|
filename_php_80="${DST_DIR_CSV}/WEBSITES_PHP_80.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_php_80.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_php_80)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_php_80");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_php_80
|
|
echo ";" >> $filename_php_80
|
|
|
|
_tmp_filename_php_81=$(mktemp)
|
|
filename_php_81="${DST_DIR_CSV}/WEBSITES_PHP_81.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_php_81.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_php_81)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_php_81");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_php_81
|
|
echo ";" >> $filename_php_81
|
|
|
|
_tmp_filename_php_82=$(mktemp)
|
|
filename_php_82="${DST_DIR_CSV}/WEBSITES_PHP_82.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_php_82.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_php_82)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_php_82");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_php_82
|
|
echo ";" >> $filename_php_82
|
|
|
|
_tmp_filename_php_83=$(mktemp)
|
|
filename_php_83="${DST_DIR_CSV}/WEBSITES_PHP_83.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_php_83.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_php_83)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_php_83");
|
|
?>
|
|
EOF
|
|
echo "Website; ;PHP Version; ;PHP Engine; ;Database; ;CMS; ;DocumentRoot; ;VHost file; ;Server Alias(es)" > $filename_php_83
|
|
echo ";" >> $filename_php_83
|
|
|
|
|
|
_tmp_filename_not_considered=$(mktemp)
|
|
filename_not_considered="${DST_DIR_CSV}/VHOST_FILES_NOT_CONSIDERED.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/vhost_files_not_considered.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_not_considered)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_not_considered");
|
|
?>
|
|
EOF
|
|
echo "VHost file" > $filename_not_considered
|
|
echo ";" >> $filename_not_considered
|
|
|
|
|
|
_tmp_filename_no_php_assigned=$(mktemp)
|
|
filename_no_php_assigned="${DST_DIR_CSV}/WEBSITES_NO_PHP_FOUND.csv"
|
|
cat <<EOF > ${DST_PATH_STATS}/websites_no_php_found.php
|
|
<?php
|
|
header('Content-Type:application/csv ; charset=utf-8');
|
|
header("Content-Disposition: attachment; filename=\"$(basename $filename_no_php_assigned)\"");
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
readfile("$filename_no_php_assigned");
|
|
?>
|
|
EOF
|
|
echo "VHost file" > $filename_no_php_assigned
|
|
echo ";" >> $filename_no_php_assigned
|
|
|
|
|
|
# -----
|
|
# - Gathering global settings
|
|
# -----
|
|
|
|
# - Check if mod_php is installed.
|
|
# -
|
|
mod_php_installed=false
|
|
if $(httpd -M | grep -q -E "php[5-9]?_module" 2>/dev/null) ; then
|
|
mod_php_installed=true
|
|
if $(apachectl status | grep -q "PHP/" 2>/dev/null) ; then
|
|
MOD_PHP_VERSION="$(trim $(apachectl status | grep "PHP/" | cut -d '/' -f2))"
|
|
else
|
|
MOD_PHP_VERSION=" UNKNOWN"
|
|
warn "'mod_php' ist running, but i cannot dermin the PHP Version.\n 'apachectl status' does not work on this server."
|
|
fi
|
|
fi
|
|
|
|
|
|
# - Try to find apache vhost configuration directories
|
|
# -
|
|
if [[ -d "/usr/local/apache2/conf/vhosts" ]]; then
|
|
apache_vhost_dir_arr+=("/usr/local/apache2/conf/vhosts")
|
|
#if [[ -d "/usr/local/apache2/conf/vhosts/0" ]]; then
|
|
while IFS='' read -r -d '' dirname ; do
|
|
if ! containsElement "$(realpath $dirname)" "${apache_vhost_dir_arr[@]}" ; then
|
|
apache_vhost_dir_arr+=("$(realpath $dirname)")
|
|
fi
|
|
done < <(find /usr/local/apache2/conf/vhosts -mindepth 1 -maxdepth 1 -type d -print0)
|
|
#else
|
|
#fi
|
|
elif [[ -d "/etc/apache2/sites-enabled" ]]; then
|
|
apache_vhost_dir_arr+=("/etc/apache2/sites-enabled")
|
|
fi
|
|
|
|
|
|
# - Create Array of all active VHost configurations
|
|
# -
|
|
for apache_vhost_dir in ${apache_vhost_dir_arr[@]} ; do
|
|
|
|
|
|
# - Collect all VHost files
|
|
# -
|
|
while IFS='' read -r -d '' filename ; do
|
|
if ! containsElement "$(realpath $filename)" "${_all_vhost_files_arr[@]}" ; then
|
|
_all_vhost_files_arr+=("$(realpath $filename)")
|
|
fi
|
|
done < <(find $apache_vhost_dir -mindepth 1 -maxdepth 1 -name '*.conf' -print0)
|
|
done
|
|
|
|
|
|
# - Create summary files
|
|
# -
|
|
for _vhost_file in ${_all_vhost_files_arr[@]} ; do
|
|
|
|
[[ "$(basename $(dirname "$_vhost_file"))" == "DELETED" ]] && continue
|
|
[[ "$(basename $(dirname "$_vhost_file"))" == "BAK" ]] && continue
|
|
|
|
_documentroot=""
|
|
|
|
_vhost_file_not_considered=false
|
|
|
|
# - Get Server Name
|
|
# -
|
|
_server_name=$(grep -i -E "^\s*ServerName" $_vhost_file | sed -e "s/ServerName//" | sed "s/^\s*//" | sed "s/\s*$//" | sort -u)
|
|
|
|
if [[ $_server_name =~ localhost ]]; then
|
|
_vhost_file_not_considered=true
|
|
fi
|
|
if [[ $_server_name =~ ^dummy ]]; then
|
|
_vhost_file_not_considered=true
|
|
fi
|
|
|
|
((number_overall++))
|
|
|
|
|
|
if ! $_vhost_file_not_considered ; then
|
|
# - Get documetroot of current VHost configuration file
|
|
# -
|
|
_documentroot=$(grep -E "^\s*DocumentRoot" $_vhost_file 2> /dev/null | awk '{print$2}' | sed 's/"//g' | sed 's/\/$//' | sort -u)
|
|
fi
|
|
|
|
# - Get Server Aliase
|
|
# -
|
|
_server_aliases=$(grep -i -E "^\s*ServerAlias" $_vhost_file | sed -e "s/ServerAlias//" | sed "s/^\s*//" | sed "s/\s*$//" | sort -u)
|
|
|
|
server_aliases=""
|
|
if [[ -n "$_server_aliases" ]] ; then
|
|
for _server_alias in $_server_aliases ; do
|
|
server_aliases="$server_aliases $_server_alias"
|
|
done
|
|
fi
|
|
|
|
server_aliases="$(echo "$(trim $server_aliases)" | tr '\n' ' ')"
|
|
|
|
if [[ $_documentroot =~ /var/www/html/projekte/PARKED/htdocs ]] \
|
|
|| [[ $_documentroot =~ /var/www/PARKED/htdocs ]]; then
|
|
|
|
echo "$_server_name;;$server_aliases;;$_vhost_file" >> $_tmp_filename_parked
|
|
|
|
((number_parked++))
|
|
|
|
|
|
elif [[ -n $_documentroot ]]; then
|
|
|
|
|
|
# ---
|
|
# - Get databases amd type of CMS
|
|
# ---
|
|
|
|
site_cms="Unknown"
|
|
database="Not found"
|
|
cms_version="Unkown"
|
|
|
|
file_to_check="$(dirname $_documentroot)/db.inc.php"
|
|
file_to_check_mediawiki="${_documentroot}/LocalSettings.php"
|
|
file_to_check_wordpress="${_documentroot}/wp-config.php"
|
|
file_to_check_drupal="${_documentroot}/sites/default/settings.php"
|
|
file_to_check_typo3="${_documentroot}/typo3conf/LocalConfiguration.php"
|
|
file_to_check_redaxo="${_documentroot}/redaxo/include/master.inc.php"
|
|
|
|
_found=false
|
|
if [[ -r "$file_to_check_mediawiki" ]] && [[ ! -d "$file_to_check_mediawiki" ]] ; then
|
|
db_search_string='\$wgDBname'
|
|
#db_search_string='\$wgEnableUserEmail'
|
|
_found=false
|
|
if grep -i -q "$db_search_string" $file_to_check_mediawiki > /dev/null 2>&1 ; then
|
|
database="$(grep -i "$db_search_string" $file_to_check_mediawiki 2> /dev/null \
|
|
| awk -F '=' '{print$2}' \
|
|
| awk -F ';' '{print$1}'\
|
|
| tail -1)"
|
|
|
|
# - Remove leading whitespace characters
|
|
database="${database#"${database%%[![:space:]]*}"}"
|
|
# - Remove trailing whitespace characters
|
|
database="${database%"${database##*[![:space:]]}"}"
|
|
# - Remove leading single quote
|
|
database="${database#"${database%%[!\']*}"}"
|
|
# - Remove trailing single quote
|
|
database="${database%"${database##*[!\']}"}"
|
|
# - Remove leading double quote
|
|
database="${database#"${database%%[!\"]*}"}"
|
|
# - Remove trailing double quote
|
|
database="${database%"${database##*[!\"]}"}"
|
|
|
|
|
|
_found=true
|
|
fi
|
|
|
|
_found_mediawiki_version=false
|
|
if [[ -f "${_documentroot}/includes/Defines.php" ]]; then
|
|
version_search_string="define\(\\s*'MW_VERSION'"
|
|
cms_version="$(grep -i -E "^\s*$version_search_string" ${_documentroot}/includes/Defines.php 2> /dev/null \
|
|
| awk -F ',' '{print$2}' \
|
|
| awk -F ')' '{print$1}' \
|
|
| tail -1 )"
|
|
[[ -n "$cms_version" ]] && _found_mediawiki_version=true
|
|
fi
|
|
|
|
if ! $_found_mediawiki_version && [[ -f "${_documentroot}/includes/DefaultSettings.php" ]]; then
|
|
version_search_string='\$wgVersion\s+='
|
|
cms_version="$(grep -i -E "^\s*$version_search_string" "${_documentroot}/includes/DefaultSettings.php" 2> /dev/null \
|
|
| awk -F '=' '{print$2}' \
|
|
| awk -F ';' '{print$1}'\
|
|
| tail -1)"
|
|
[[ -n "$cms_version" ]] && _found_mediawiki_version=true
|
|
fi
|
|
|
|
if $_found_mediawiki_version ; then
|
|
# - Remove leading whitespace characters
|
|
cms_version="${cms_version#"${cms_version%%[![:space:]]*}"}"
|
|
# - Remove trailing whitespace characters
|
|
cms_version="${cms_version%"${cms_version##*[![:space:]]}"}"
|
|
# - Rmove trailing semicolon characters
|
|
cms_version="${cms_version%"${cms_version##*[!;]}"}"
|
|
# - Remove trailing whitespace characters
|
|
cms_version="${cms_version#"${cms_version%%[!\']*}"}"
|
|
# - Remove trailing inverted comma characters
|
|
cms_version="${cms_version%"${cms_version##*[!\']}"}"
|
|
|
|
fi
|
|
|
|
site_cms="MediaWiki $cms_version"
|
|
|
|
elif [[ -r "$file_to_check_wordpress" ]] && [[ ! -d "$file_to_check_wordpress" ]] ; then
|
|
|
|
db_search_string="define\(\\s*'DB_NAME'"
|
|
_found=false
|
|
if grep -i -q -E "^\s*$db_search_string" $file_to_check_wordpress > /dev/null 2>&1 ; then
|
|
|
|
database="$(grep -i -E "^\s*$db_search_string" $file_to_check_wordpress 2> /dev/null \
|
|
| awk -F ',' '{print$2}' \
|
|
| awk -F ')' '{print$1}' \
|
|
| tail -1 )"
|
|
|
|
# - Remove leading whitespace characters
|
|
database="${database#"${database%%[![:space:]]*}"}"
|
|
# - Remove trailing whitespace characters
|
|
database="${database%"${database##*[![:space:]]}"}"
|
|
# - Rmove trailing semicolon characters
|
|
database="${database%"${database##*[!;]}"}"
|
|
# - Remove trailing whitespace characters
|
|
database="${database#"${database%%[!\']*}"}"
|
|
# - Remove trailing inverted comma characters
|
|
database="${database%"${database##*[!\']}"}"
|
|
|
|
_found=true
|
|
|
|
fi
|
|
|
|
if [[ -f "${_documentroot}/wp-includes/version.php" ]]; then
|
|
version_search_string='\$wp_version\s+='
|
|
cms_version="$(grep -i -E "^\s*$version_search_string" ${_documentroot}/wp-includes/version.php 2> /dev/null \
|
|
| awk -F '=' '{print$2}' \
|
|
| tail -1 )"
|
|
|
|
# - Remove leading whitespace characters
|
|
cms_version="${cms_version#"${cms_version%%[![:space:]]*}"}"
|
|
# - Remove trailing whitespace characters
|
|
cms_version="${cms_version%"${cms_version##*[![:space:]]}"}"
|
|
# - Rmove trailing semicolon characters
|
|
cms_version="${cms_version%"${cms_version##*[!;]}"}"
|
|
# - Remove trailing whitespace characters
|
|
cms_version="${cms_version#"${cms_version%%[!\']*}"}"
|
|
# - Remove trailing inverted comma characters
|
|
cms_version="${cms_version%"${cms_version##*[!\']}"}"
|
|
fi
|
|
|
|
site_cms="WordPress $cms_version"
|
|
|
|
elif [[ -r "$file_to_check_drupal" ]] && [[ ! -d "$file_to_check_drupal" ]] ; then
|
|
|
|
db_search_string="'database'\s+=>"
|
|
_found=false
|
|
if grep -i -q -E "^\s*$db_search_string" $file_to_check_drupal > /dev/null 2>&1 ; then
|
|
|
|
database="$(grep -i -E "^\s*$db_search_string" $file_to_check_drupal 2> /dev/null \
|
|
| awk -F '=>' '{print$2}' \
|
|
| awk -F ',' '{print$1}' \
|
|
| tail -1 )"
|
|
|
|
# - Remove leading whitespace characters
|
|
database="${database#"${database%%[![:space:]]*}"}"
|
|
# - Remove trailing whitespace characters
|
|
database="${database%"${database##*[![:space:]]}"}"
|
|
# - Rmove trailing semicolon characters
|
|
database="${database%"${database##*[!;]}"}"
|
|
# - Remove trailing whitespace characters
|
|
database="${database#"${database%%[!\']*}"}"
|
|
# - Remove trailing inverted comma characters
|
|
database="${database%"${database##*[!\']}"}"
|
|
|
|
_found=true
|
|
|
|
fi
|
|
|
|
_found_drupal_version=false
|
|
if [[ -f "${_documentroot}/modules/system/system.module" ]] ; then
|
|
version_search_string="define\\s*\(\\s*'VERSION'"
|
|
cms_version="$(grep -i -E "^\s*$version_search_string" ${_documentroot}/modules/system/system.module 2> /dev/null \
|
|
| awk -F ',' '{print$2}' \
|
|
| awk -F ')' '{print$1}' \
|
|
| tail -1 )"
|
|
[[ -n "$cms_version" ]] && _found_drupal_version=true
|
|
fi
|
|
|
|
if ! $_found_drupal_version && [[ -f "${_documentroot}/includes/bootstrap.inc" ]] ; then
|
|
version_search_string="define\\s*\(\\s*'VERSION'"
|
|
cms_version="$(grep -i -E "^\s*$version_search_string" ${_documentroot}/includes/bootstrap.inc 2> /dev/null \
|
|
| awk -F ',' '{print$2}' \
|
|
| awk -F ')' '{print$1}' \
|
|
| tail -1 )"
|
|
|
|
[[ -n "$cms_version" ]] && _found_drupal_version=true
|
|
fi
|
|
|
|
|
|
if ! $_found_drupal_version && [[ -f "${_documentroot}/core/lib/Drupal.php" ]] ; then
|
|
version_search_string="const\\s+VERSION\\s+="
|
|
cms_version="$(grep -i -E "^\s*$version_search_string" "${_documentroot}/core/lib/Drupal.php" 2> /dev/null \
|
|
| awk -F ' ' '{print$4}' \
|
|
| tail -1 )"
|
|
[[ -n "$cms_version" ]] && _found_drupal_version=true
|
|
fi
|
|
|
|
if $_found_drupal_version ; then
|
|
# - Remove leading whitespace characters
|
|
cms_version="${cms_version#"${cms_version%%[![:space:]]*}"}"
|
|
# - Remove trailing whitespace characters
|
|
cms_version="${cms_version%"${cms_version##*[![:space:]]}"}"
|
|
# - Rmove trailing semicolon characters
|
|
cms_version="${cms_version%"${cms_version##*[!;]}"}"
|
|
# - Remove trailing whitespace characters
|
|
cms_version="${cms_version#"${cms_version%%[!\']*}"}"
|
|
# - Remove trailing inverted comma characters
|
|
cms_version="${cms_version%"${cms_version##*[!\']}"}"
|
|
fi
|
|
|
|
site_cms="Drupal $cms_version"
|
|
|
|
elif [[ -r "$file_to_check_typo3" ]] && [[ ! -d "$file_to_check_typo3" ]] ; then
|
|
|
|
db_search_string="'database'\s+=>"
|
|
_found=false
|
|
if grep -i -q -E "^\s*$db_search_string" $file_to_check_typo3 > /dev/null 2>&1 ; then
|
|
|
|
database="$(grep -i -E "^\s*$db_search_string" $file_to_check_typo3 2> /dev/null \
|
|
| awk -F '=>' '{print$2}' \
|
|
| awk -F ',' '{print$1}' \
|
|
| tail -1 )"
|
|
|
|
# - Remove leading whitespace characters
|
|
database="${database#"${database%%[![:space:]]*}"}"
|
|
# - Remove trailing whitespace characters
|
|
database="${database%"${database##*[![:space:]]}"}"
|
|
# - Rmove trailing semicolon characters
|
|
database="${database%"${database##*[!;]}"}"
|
|
# - Remove trailing whitespace characters
|
|
database="${database#"${database%%[!\']*}"}"
|
|
# - Remove trailing inverted comma characters
|
|
database="${database%"${database##*[!\']}"}"
|
|
|
|
_found=true
|
|
|
|
fi
|
|
|
|
if [[ -f "${_documentroot}/typo3_src/ChangeLog" ]] ; then
|
|
version_search_string='\[RELEASE\]\s+Release\s+of\s+TYPO3'
|
|
cms_version="$(grep -i -m 1 -E "$version_search_string" ${_documentroot}/typo3_src/ChangeLog 2> /dev/null \
|
|
| grep -o -E "\s+[0-9]+.[0-9]+.[0-9]+\s+")"
|
|
|
|
# - Remove leading whitespace characters
|
|
cms_version="${cms_version#"${cms_version%%[![:space:]]*}"}"
|
|
# - Remove trailing whitespace characters
|
|
cms_version="${cms_version%"${cms_version##*[![:space:]]}"}"
|
|
fi
|
|
|
|
site_cms="Typo3 $cms_version"
|
|
|
|
elif [[ -r "$file_to_check_redaxo" ]] && [[ ! -d "$file_to_check_redaxo" ]] ; then
|
|
|
|
db_search_string="\\\$REX\['DB'\]\['1'\]\['NAME'\]\s+="
|
|
_found=false
|
|
if grep -i -q -E "^\s*$db_search_string" $file_to_check_redaxo > /dev/null 2>&1 ; then
|
|
|
|
database="$(grep -i -E "^\s*$db_search_string" $file_to_check_redaxo 2> /dev/null \
|
|
| awk -F '=' '{print$2}' \
|
|
| tail -1 )"
|
|
|
|
# - Remove leading whitespace characters
|
|
database="${database#"${database%%[![:space:]]*}"}"
|
|
# - Remove trailing whitespace characters
|
|
database="${database%"${database##*[![:space:]]}"}"
|
|
# - Rmove trailing semicolon characters
|
|
database="${database%"${database##*[!;]}"}"
|
|
# - Remove trailing whitespace characters
|
|
database="${database#"${database%%[!\']*}"}"
|
|
# - Remove trailing inverted comma characters
|
|
database="${database%"${database##*[!\']}"}"
|
|
|
|
_found=true
|
|
|
|
fi
|
|
|
|
main_version_search_string="\\\$REX\['VERSION'\]\s+="
|
|
if grep -i -q -E "^\s*$main_version_search_string" $file_to_check_redaxo > /dev/null 2>&1 ; then
|
|
|
|
main_version="$(grep -i -E "^\s*$main_version_search_string" $file_to_check_redaxo 2> /dev/null \
|
|
| awk -F '=' '{print$2}' \
|
|
| tail -1 )"
|
|
|
|
# - Remove leading whitespace characters
|
|
main_version="${main_version#"${main_version%%[![:space:]]*}"}"
|
|
# - Remove trailing whitespace characters
|
|
main_version="${main_version%"${main_version##*[![:space:]]}"}"
|
|
# - Rmove trailing semicolon characters
|
|
main_version="${main_version%"${main_version##*[!;]}"}"
|
|
# - Remove trailing whitespace characters
|
|
main_version="${main_version#"${main_version%%[!\']*}"}"
|
|
# - Remove trailing inverted comma characters
|
|
main_version="${main_version%"${main_version##*[!\']}"}"
|
|
# - Remove leading single quote
|
|
main_version="${main_version#"${main_version%%[!\']*}"}"
|
|
# - Remove trailing single quote
|
|
main_version="${main_version%"${main_version##*[!\']}"}"
|
|
# - Remove leading double quote
|
|
main_version="${main_version#"${main_version%%[!\"]*}"}"
|
|
# - Remove trailing double quote
|
|
main_version="${main_version%"${main_version##*[!\"]}"}"
|
|
|
|
sub_version_search_string="\\\$REX\['SUBVERSION'\]\s+="
|
|
if grep -i -q -E "^\s*$sub_version_search_string" $file_to_check_redaxo > /dev/null 2>&1 ; then
|
|
|
|
sub_version="$(grep -i -E "^\s*$sub_version_search_string" $file_to_check_redaxo 2> /dev/null \
|
|
| awk -F '=' '{print$2}' \
|
|
| tail -1 )"
|
|
|
|
# - Remove leading whitespace characters
|
|
sub_version="${sub_version#"${sub_version%%[![:space:]]*}"}"
|
|
# - Remove trailing whitespace characters
|
|
sub_version="${sub_version%"${sub_version##*[![:space:]]}"}"
|
|
# - Rmove trailing semicolon characters
|
|
sub_version="${sub_version%"${sub_version##*[!;]}"}"
|
|
# - Remove trailing whitespace characters
|
|
sub_version="${sub_version#"${sub_version%%[!\']*}"}"
|
|
# - Remove trailing inverted comma characters
|
|
sub_version="${sub_version%"${sub_version##*[!\']}"}"
|
|
# - Remove leading single quote
|
|
sub_version="${sub_version#"${sub_version%%[!\']*}"}"
|
|
# - Remove trailing single quote
|
|
sub_version="${sub_version%"${sub_version##*[!\']}"}"
|
|
# - Remove leading double quote
|
|
sub_version="${sub_version#"${sub_version%%[!\"]*}"}"
|
|
# - Remove trailing double quote
|
|
sub_version="${sub_version%"${sub_version##*[!\"]}"}"
|
|
|
|
minor_version_search_string="\\\$REX\['MINORVERSION'\]\s+="
|
|
if grep -i -q -E "^\s*$minor_version_search_string" $file_to_check_redaxo > /dev/null 2>&1 ; then
|
|
|
|
minor_version="$(grep -i -E "^\s*$minor_version_search_string" $file_to_check_redaxo 2> /dev/null \
|
|
| awk -F '=' '{print$2}' \
|
|
| tail -1 )"
|
|
|
|
# - Remove leading whitespace characters
|
|
minor_version="${minor_version#"${minor_version%%[![:space:]]*}"}"
|
|
# - Remove trailing whitespace characters
|
|
minor_version="${minor_version%"${minor_version##*[![:space:]]}"}"
|
|
# - Rmove trailing semicolon characters
|
|
minor_version="${minor_version%"${minor_version##*[!;]}"}"
|
|
# - Remove trailing whitespace characters
|
|
minor_version="${minor_version#"${minor_version%%[!\']*}"}"
|
|
# - Remove trailing inverted comma characters
|
|
minor_version="${minor_version%"${minor_version##*[!\']}"}"
|
|
# - Remove leading single quote
|
|
minor_version="${minor_version#"${minor_version%%[!\']*}"}"
|
|
# - Remove trailing single quote
|
|
minor_version="${minor_version%"${minor_version##*[!\']}"}"
|
|
# - Remove leading double quote
|
|
minor_version="${minor_version#"${minor_version%%[!\"]*}"}"
|
|
# - Remove trailing double quote
|
|
minor_version="${minor_version%"${minor_version##*[!\"]}"}"
|
|
|
|
else
|
|
minor_version="?"
|
|
fi
|
|
|
|
else
|
|
sub_version="?"
|
|
minor_version="?"
|
|
fi
|
|
|
|
cms_version="${main_version}.${sub_version}.$minor_version"
|
|
|
|
fi
|
|
|
|
site_cms="REDAXO $cms_version"
|
|
|
|
elif [[ -r "$file_to_check" ]] && [[ ! -d "$file_to_check" ]]; then
|
|
db_search_strings=('\$db_name' '\$mysql_db')
|
|
_found=false
|
|
for _string in ${db_search_strings[@]} ; do
|
|
if grep -i -q -E "^\s*$_string" $file_to_check > /dev/null 2>&1 ; then
|
|
|
|
database="$(grep -i -E "^\s*$_string" $file_to_check 2> /dev/null | awk -F '=' '{print$2}' | tail -1 )"
|
|
|
|
# - Remove leading whitespace characters
|
|
database="${database#"${database%%[![:space:]]*}"}"
|
|
# - Remove trailing whitespace characters
|
|
database="${database%"${database##*[![:space:]]}"}"
|
|
# - Rmove trailing semicolon characters
|
|
database="${database%"${database##*[!;]}"}"
|
|
# - Remove trailing whitespace characters
|
|
database="${database#"${database%%[!\']*}"}"
|
|
# - Remove trailing inverted comma characters
|
|
database="${database%"${database##*[!\']}"}"
|
|
|
|
_found=true
|
|
|
|
break
|
|
fi
|
|
done
|
|
|
|
if ! $_found ; then
|
|
file_to_check="${_documentroot}/includes/config.inc.php"
|
|
if [[ -f "$file_to_check" ]]; then
|
|
if grep -i -q -E "^\s*define\s*\(\s*'DB_DATABASE'" $file_to_check > /dev/null 2>&1 ; then
|
|
database="$(grep -i -m 1 -E "^\s*define\s*\(\s*'DB_DATABASE'" $file_to_check 2> /dev/null \
|
|
| awk -F ',' '{print$2}' \
|
|
| awk -F ')' '{print$1}' \
|
|
| tail -1 )"
|
|
|
|
# - Remove leading whitespace characters
|
|
database="${database#"${database%%[![:space:]]*}"}"
|
|
# - Remove trailing whitespace characters
|
|
database="${database%"${database##*[![:space:]]}"}"
|
|
# - Remove leading single quote
|
|
database="${database#"${database%%[!\']*}"}"
|
|
# - Remove trailing single quote
|
|
database="${database%"${database##*[!\']}"}"
|
|
# - Remove leading double quote
|
|
database="${database#"${database%%[!\"]*}"}"
|
|
# - Remove trailing double quote
|
|
database="${database%"${database##*[!\"]}"}"
|
|
|
|
_found=true
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
site_cms="Kontext"
|
|
|
|
fi
|
|
|
|
|
|
# - Get PHP version of current vhost configuration file
|
|
# -
|
|
_php_engine=""
|
|
_php_version=""
|
|
CUR_IFS=$IFS
|
|
IFS=''
|
|
if grep -q -E "^\s*(ProxyPassMatch|SetHandler).*php-[5-9]\.[0-9]+-" $_vhost_file 2> /dev/null ; then
|
|
_php_engine="PHP FPM"
|
|
|
|
if grep -q -E "^\s*(SetHandler).*php-[5-9]\.[0-9]+-" $_vhost_file 2> /dev/null ; then
|
|
_php_fpm_socket="$(grep -E "^\s*(SetHandler).*php-[5-9]\.[0-9]+-" $_vhost_file 2> /dev/null \
|
|
| head -1 | cut -d ':' -f3 | cut -d'|' -f1)"
|
|
else
|
|
_php_fpm_socket=
|
|
fi
|
|
if [[ -S "$_php_fpm_socket" ]] ; then
|
|
_php_version="$(exec /usr/local/php-$(echo "$_php_fpm_socket" | grep -o -E "[5-9]\.[0-9]")/bin/php -v \
|
|
| head -1 | awk '{print$2}')"
|
|
else
|
|
_php_version="UNKNOWN"
|
|
fi
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_php_fpm
|
|
|
|
((number_php_fpm++))
|
|
|
|
elif grep -d skip -q -E "^\s*FCGIWrapper\s+.*\.php" $_vhost_file 2> /dev/null ; then
|
|
_php_engine="PHP FastCGI"
|
|
|
|
_fcgid_file="$(grep -E "^\s*FCGIWrapper\s+.*\.php" $_vhost_file 2> /dev/null \
|
|
| head -1 | awk '{print$2}')"
|
|
if [[ -f "$_fcgid_file" ]] ; then
|
|
_php_version="$($(grep "exec" $_fcgid_file | awk '{print$2}') -v | head -1 | awk '{print$2}')"
|
|
[[ -z "$_php_version" ]] && _php_version="unknown Version"
|
|
else
|
|
_php_version="UNKNOWN"
|
|
fi
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_php_fcgid
|
|
|
|
((number_php_fcgid++))
|
|
|
|
elif $mod_php_installed ; then
|
|
_php_engine="Apache Handler"
|
|
_php_version="$MOD_PHP_VERSION"
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_mod_php
|
|
|
|
((number_mod_php++))
|
|
else
|
|
_php_version="No PHP assigned"
|
|
_php_engine=""
|
|
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_no_php_assigned
|
|
|
|
((number_no_php_assigned++))
|
|
|
|
fi
|
|
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_summary
|
|
|
|
if [[ "$_php_version" =~ ^5.3 ]]; then
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_php_53
|
|
|
|
((number_websites_53++))
|
|
|
|
fi
|
|
|
|
if [[ "$_php_version" =~ ^5.4 ]]; then
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_php_54
|
|
|
|
((number_websites_54++))
|
|
|
|
fi
|
|
|
|
if [[ "$_php_version" =~ ^5.5 ]]; then
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_php_55
|
|
|
|
((number_websites_55++))
|
|
|
|
fi
|
|
|
|
if [[ "$_php_version" =~ ^5.6 ]]; then
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_php_56
|
|
|
|
((number_websites_56++))
|
|
|
|
fi
|
|
|
|
if [[ "$_php_version" =~ ^7.0 ]]; then
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_php_70
|
|
|
|
((number_websites_70++))
|
|
|
|
fi
|
|
|
|
if [[ "$_php_version" =~ ^7.1 ]]; then
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_php_71
|
|
|
|
((number_websites_71++))
|
|
|
|
fi
|
|
|
|
if [[ "$_php_version" =~ ^7.2 ]]; then
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_php_72
|
|
|
|
((number_websites_72++))
|
|
|
|
fi
|
|
|
|
if [[ "$_php_version" =~ ^7.3 ]]; then
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_php_73
|
|
|
|
((number_websites_73++))
|
|
|
|
fi
|
|
|
|
if [[ "$_php_version" =~ ^7.4 ]]; then
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_php_74
|
|
|
|
((number_websites_74++))
|
|
|
|
fi
|
|
|
|
if [[ "$_php_version" =~ ^8.0 ]]; then
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_php_80
|
|
|
|
((number_websites_80++))
|
|
|
|
fi
|
|
|
|
if [[ "$_php_version" =~ ^8.1 ]]; then
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_php_81
|
|
|
|
((number_websites_81++))
|
|
|
|
fi
|
|
|
|
if [[ "$_php_version" =~ ^8.2 ]]; then
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_php_82
|
|
|
|
((number_websites_82++))
|
|
|
|
fi
|
|
|
|
if [[ "$_php_version" =~ ^8.3 ]]; then
|
|
echo "$_server_name;;$_php_version;;$_php_engine;;$database;;$site_cms;;$_documentroot;;$_vhost_file;;$server_aliases" >> $_tmp_filename_php_83
|
|
|
|
((number_websites_83++))
|
|
|
|
fi
|
|
|
|
elif ! $_vhost_file_not_considered ; then
|
|
_redirect_site=""
|
|
_redirect_site=$(grep -E "^\s*RewriteRule" $_vhost_file 2> /dev/null | awk '{print$3}' | sed 's/"//g' | sed 's/\/$//' | sed 's/https\?:\/\///g' | sed 's/\$1//g' | sort -u)
|
|
if [[ -n "$_redirect_site" ]] ; then
|
|
echo "$_server_name;;$server_aliases;;$_redirect_site;;$_vhost_file" >> $_tmp_filename_redirected
|
|
|
|
((number_redirected++))
|
|
|
|
else
|
|
_vhost_file_not_considered=true
|
|
fi
|
|
fi
|
|
|
|
if $_vhost_file_not_considered ; then
|
|
echo "$_vhost_file" >> $_tmp_filename_not_considered
|
|
|
|
((number_not_considered++))
|
|
((number_overall--))
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
cat $_tmp_filename_summary | sort >> $filename_summary
|
|
cat $_tmp_filename_redirected | sort >> $filename_redirected
|
|
cat $_tmp_filename_parked | sort >> $filename_parked
|
|
cat $_tmp_filename_mod_php | sort >> $filename_mod_php
|
|
cat $_tmp_filename_php_fpm | sort >> $filename_php_fpm
|
|
cat $_tmp_filename_php_fcgid | sort >> $filename_php_fcgid
|
|
cat $_tmp_filename_php_53 | sort >> $filename_php_53
|
|
cat $_tmp_filename_php_54 | sort >> $filename_php_54
|
|
cat $_tmp_filename_php_55 | sort >> $filename_php_55
|
|
cat $_tmp_filename_php_56 | sort >> $filename_php_56
|
|
cat $_tmp_filename_php_70 | sort >> $filename_php_70
|
|
cat $_tmp_filename_php_71 | sort >> $filename_php_71
|
|
cat $_tmp_filename_php_72 | sort >> $filename_php_72
|
|
cat $_tmp_filename_php_73 | sort >> $filename_php_73
|
|
cat $_tmp_filename_php_74 | sort >> $filename_php_74
|
|
cat $_tmp_filename_php_80 | sort >> $filename_php_80
|
|
cat $_tmp_filename_php_81 | sort >> $filename_php_81
|
|
cat $_tmp_filename_php_82 | sort >> $filename_php_82
|
|
cat $_tmp_filename_not_considered | sort >> $filename_not_considered
|
|
cat $_tmp_filename_no_php_assigned | sort >> $filename_no_php_assigned
|
|
|
|
|
|
# -----
|
|
# - Create summary file index.php
|
|
# -----
|
|
|
|
if [[ -f "${DST_PATH_STATS}/index.php" ]]; then
|
|
rm "${DST_PATH_STATS}/index.php"
|
|
fi
|
|
|
|
cat <<EOF > ${DST_PATH_STATS}/index.html
|
|
<html>
|
|
<head>
|
|
<title>Statistics websites $(hostname -f)</title>
|
|
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
|
|
<meta http-equiv="Pragma" content="no-cache">
|
|
<meta http-equiv="Expires" content="0">
|
|
</head>
|
|
<body>
|
|
<h4>$(hostname -f)</h4>
|
|
<ul>
|
|
EOF
|
|
if [[ $number_overall -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_summary)">full summary of all hosted websites</a>: $number_overall</li>
|
|
EOF
|
|
else
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li>full summary of all hosted websites: $number_overall</li>
|
|
EOF
|
|
fi
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<br />
|
|
EOF
|
|
if [[ $number_redirected -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_redirected)">redirected websites</a>: $number_redirected</li>
|
|
EOF
|
|
else
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li>redirected websites: $number_redirected</li>
|
|
EOF
|
|
fi
|
|
if [[ $number_parked -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_parked)">parked websites</a>: $number_parked</li>
|
|
EOF
|
|
else
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li>parked websites: $number_parked</li>
|
|
EOF
|
|
fi
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<br />
|
|
EOF
|
|
if [[ $number_mod_php -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_mod_php)">websites mod_php</a>: $number_mod_php</li>
|
|
EOF
|
|
else
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li>websites mod_php: $number_mod_php</li>
|
|
EOF
|
|
fi
|
|
if [[ $number_php_fpm -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_php_fpm)">websites PHP-FPM</a>: $number_php_fpm</li>
|
|
EOF
|
|
else
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li>websites PHP-FPM: $number_php_fpm</li>
|
|
EOF
|
|
fi
|
|
if [[ $number_php_fcgid -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_php_fcgid)">websites FastCGI</a>: $number_php_fcgid</li>
|
|
EOF
|
|
else
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li>websites FastCGI: $number_php_fcgid</li>
|
|
EOF
|
|
fi
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<br />
|
|
EOF
|
|
if [[ $number_no_php_assigned -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_no_php_assigned)">websites no PHP assigned</a>: $number_no_php_assigned</li>
|
|
EOF
|
|
else
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li>websites no PHP assigned: $number_no_php_assigned</li>
|
|
EOF
|
|
fi
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
</ul>
|
|
<hr width="100" align="left">
|
|
<ul>
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_not_considered)">vhost_files not considered</a>: $number_not_considered</li>
|
|
</ul>
|
|
<hr width="100" align="left">
|
|
<h5>PHP versions supported by this script:<br /> $PHP_VERIONS_SUPPORTED</h5>
|
|
<ul>
|
|
EOF
|
|
if [[ $number_websites_53 -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_php_74)">websites PHP v5.3</a>: $number_websites_53</li>
|
|
EOF
|
|
fi
|
|
if [[ $number_websites_54 -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_php_54)">websites PHP v5.4</a>: $number_websites_54</li>
|
|
EOF
|
|
fi
|
|
if [[ $number_websites_55 -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_php_55)">websites PHP v5.5</a>: $number_websites_55</li>
|
|
EOF
|
|
fi
|
|
if [[ $number_websites_56 -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_php_56)">websites PHP v5.6</a>: $number_websites_56</li>
|
|
EOF
|
|
fi
|
|
if [[ $number_websites_70 -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_php_70)">websites PHP v7.0</a>: $number_websites_70</li>
|
|
EOF
|
|
fi
|
|
if [[ $number_websites_71 -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_php_71)">websites PHP v7.1</a>: $number_websites_71</li>
|
|
EOF
|
|
fi
|
|
if [[ $number_websites_72 -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_php_72)">websites PHP v7.2</a>: $number_websites_72</li>
|
|
EOF
|
|
fi
|
|
if [[ $number_websites_73 -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_php_73)">websites PHP v7.3</a>: $number_websites_73</li>
|
|
EOF
|
|
fi
|
|
if [[ $number_websites_74 -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_php_74)">websites PHP v7.4</a>: $number_websites_74</li>
|
|
EOF
|
|
fi
|
|
if [[ $number_websites_80 -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_php_80)">websites PHP v8.0</a>: $number_websites_80</li>
|
|
EOF
|
|
fi
|
|
if [[ $number_websites_81 -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_php_81)">websites PHP v8.1</a>: $number_websites_81</li>
|
|
EOF
|
|
fi
|
|
if [[ $number_websites_82 -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_php_82)">websites PHP v8.2</a>: $number_websites_82</li>
|
|
EOF
|
|
fi
|
|
if [[ $number_websites_83 -gt 0 ]]; then
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
<li><a href="${WEB_DIR_CSV}/$(basename $filename_php_83)">websites PHP v8.3</a>: $number_websites_83</li>
|
|
EOF
|
|
fi
|
|
cat <<EOF >> ${DST_PATH_STATS}/index.html
|
|
</ul>
|
|
</body>
|
|
</html>
|
|
EOF
|
|
|
|
clean_up
|