Initial Import.
This commit is contained in:
		
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| /BAK/* | ||||
| *.swp | ||||
							
								
								
									
										77
									
								
								OLD/trigger_piwik_archives.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										77
									
								
								OLD/trigger_piwik_archives.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,77 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| ## --- | ||||
| ## - !! Notice "" | ||||
| ## - | ||||
| ## - Set a valid shell to th accout, under which apache webserver | ||||
| ## - is running: | ||||
| ## - | ||||
| ## -    usermod -s /bin/sh www-data | ||||
| ## --- | ||||
|  | ||||
| PATH=/usr/local/apache2/bin:/usr/local/php/bin:/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin | ||||
|  | ||||
| stats_base_dir="/var/www/stats.warenform.de" | ||||
|  | ||||
| php_bin=/usr/local/php/bin/php | ||||
| http_user=www-data | ||||
|  | ||||
| archive_script="misc/cron/archive.php" | ||||
|  | ||||
| ## -    1.) Create (encrypted) option file: | ||||
| ## -    $ mysql_config_editor set --login-path=piwik_admin --socket=/tmp/mysql.sock --user=piwik_admin --password | ||||
| ## -    $ Password: | ||||
| ## - | ||||
| ## -    2.) Set environment variable mysql_credential_args="--login-path=piwik_admin" | ||||
| ## -    Now, the backup script uses the encrypted option file instead of (unencrypt) password | ||||
| ## -    on command line. | ||||
| #db_host="localhost" | ||||
| #db_user="piwik_admin" | ||||
| #db_passwd="r9ftWbhKcw" | ||||
| mysql_credential_args="--login-path=piwik_admin" | ||||
|  | ||||
| error_log="/tmp/$$.err" | ||||
|  | ||||
| # --------------------------------------------------- # | ||||
| # ------------------- Funktionen -------------------- # | ||||
| # | ||||
| error(){ | ||||
|    echo | ||||
|    echo "----" | ||||
|    echo "$1" | ||||
|    echo | ||||
|    echo "$2" | ||||
|    echo | ||||
| } | ||||
| # | ||||
| # ------------------ Ende Funktionen ---------------- # | ||||
| # --------------------------------------------------- # | ||||
|  | ||||
| cd /tmp | ||||
|  | ||||
| databases=`mysql $mysql_credential_args -N -s -e "show databases" | grep piwik_` | ||||
|  | ||||
| for db_name in $databases ; do | ||||
|  | ||||
|    if [ -f "$stats_base_dir/$db_name/console" ];then | ||||
|  | ||||
|       ## - Alt - nicht mehr empfohlen | ||||
|       #su www-data -c "$php_bin $stats_base_dir/$db_name/$archive_script --url=http://stats.warenform.de/$db_name/" > /dev/null 2> $error_log | ||||
|  | ||||
|       ## - Neu | ||||
|       su $http_user -c "$php_bin $stats_base_dir/$db_name/console core:archive --url=https://stats.warenform.de/$db_name/" > /dev/null 2> $error_log | ||||
|       #su $http_user -c "$php_bin $stats_base_dir/$db_name/console core:archive --url=https://stats.warenform.de/$db_name/" | ||||
|       if [ -f $error_log ]; then | ||||
|          _err=`cat $error_log` | ||||
|          [ -n "$_err" ] && error "Error while executing archive script for database \"$db_name\"" "$_err" | ||||
|          [ -n "$_err" ] && continue | ||||
|       fi | ||||
|    else | ||||
|       error "Error: archive script for database \"$db_name\" not found" "$stats_base_dir/$db_name/console" | ||||
|       continue | ||||
|    fi | ||||
|  | ||||
| done | ||||
|  | ||||
| rm -f $error_log | ||||
| exit 0 | ||||
							
								
								
									
										200
									
								
								trigger_piwik_archives.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										200
									
								
								trigger_piwik_archives.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,200 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| PATH=/usr/local/apache2/bin:/usr/local/php/bin:/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin | ||||
|  | ||||
| # - Is this script running on terminal ? | ||||
| # - | ||||
| if [[ -t 1 ]] ; then | ||||
|    terminal=true | ||||
|    LOGGING=true | ||||
| else | ||||
|    terminal=false | ||||
|    LOGGING=false | ||||
| fi | ||||
|  | ||||
|  | ||||
| stats_base_dir="/var/www/stats.warenform.de" | ||||
|  | ||||
| php_bin=/usr/local/php/bin/php | ||||
| http_user=www-data | ||||
|  | ||||
| # - MySQL / MariaDB credentials | ||||
| # - | ||||
| # - Giving password on command line is insecure an sind mysql 5.5 | ||||
| # - you will get a warning doing so. | ||||
| # -  | ||||
| # - Reading username/password fro file ist also possible, using MySQL/MariaDB | ||||
| # - commandline parameter '--defaults-file'. | ||||
| # -  | ||||
| # - Since Mysql Version 5.6, you can read username/password from | ||||
| # - encrypted file. | ||||
| # - | ||||
| # -    Create (encrypted) option file: | ||||
| # -    $ mysql_config_editor set --login-path=piwik_admin --socket=/tmp/mysql.sock  --user=piwik_admin --password | ||||
| # -    $ Password: | ||||
| # - | ||||
| # -    Use of option file: | ||||
| # -    $ mysql --login-path=local ... | ||||
| # - | ||||
| # - Example | ||||
| # -    mysql_credential_args="--login-pat=piwik_admin" | ||||
| # -    mysql_credential_args="--defaults-file=/etc/mysql/debian.cnf" (Debian default) | ||||
| # -    mysql_credential_args="--defaults-file=/usr/local/mysql/sys-maint.cnf" | ||||
| # - | ||||
|  | ||||
| mysql_credential_args="--login-path=piwik_admin" | ||||
|  | ||||
| error_log="/tmp/$$.err" | ||||
|  | ||||
| # --------------------------------------------------- # | ||||
| # ------------------- Funktionen -------------------- # | ||||
| # | ||||
| usage() { | ||||
|    echo  | ||||
|    [ -n  "$1" ] && echo -e "Error: $1\n" | ||||
|  | ||||
| cat<<EOF | ||||
|  | ||||
|    Usage: ` basename $0` [Options ] | ||||
|  | ||||
|    Script archives piwik reports.  | ||||
|  | ||||
|    Options: | ||||
|  | ||||
|       -h   Prints this help. | ||||
|  | ||||
|       -v   Verbose Mode | ||||
|  | ||||
|            Applies only, if script is running in a console, or in otherwords:  | ||||
|            parameter has no effect, if script is running as a cronjob. | ||||
|             | ||||
|  | ||||
| EOF | ||||
| exit  | ||||
| } | ||||
|  | ||||
| echononl(){ | ||||
|    echo X\\c > /tmp/shprompt$$ | ||||
|    if [ `wc -c /tmp/shprompt$$ | awk '{print $1}'` -eq 1 ]; then | ||||
|       echo "$*\\c" 1>&2 | ||||
|    else | ||||
|        echo -e -n "$*" 1>&2 | ||||
|    fi | ||||
|    rm /tmp/shprompt$$ | ||||
| } | ||||
| info (){ | ||||
|    echo "" | ||||
|    echo -e "\t[ \033[32m\033[1mInfo\033[m ]: $*" | ||||
|    echo "" | ||||
| } | ||||
| error (){ | ||||
|    echo "" | ||||
|    echo -e "\t[ \033[31m\033[1mError\033[m ]: $*" | ||||
|    echo "" | ||||
| } | ||||
| error_cron(){ | ||||
|    echo | ||||
|    echo "----" | ||||
|    echo "$1" | ||||
|    echo | ||||
|    echo "$2" | ||||
|    echo | ||||
| } | ||||
| echo_ok() { | ||||
|    echo -e "\033[85G[ \033[32mok\033[m ]" | ||||
|    ## echo -e "  [ ok ]" | ||||
| } | ||||
| echo_failed(){ | ||||
|    echo -e "\033[85G[ \033[1;31mfailed\033[m ]" | ||||
|    ## echo -e "  [ failed ]" | ||||
| } | ||||
| # | ||||
| # ------------------ Ende Funktionen ---------------- # | ||||
| # --------------------------------------------------- # | ||||
|  | ||||
| VERBOSE=false | ||||
|  | ||||
| # --- | ||||
| # - Read in Commandline arguments | ||||
| # --- | ||||
| while getopts hv opt ; do | ||||
|    case $opt in | ||||
|       v) VERBOSE=true | ||||
|          ;; | ||||
|       h) usage | ||||
|          ;; | ||||
|    esac | ||||
| done | ||||
|  | ||||
| cd /tmp | ||||
|  | ||||
| databases=`mysql $mysql_credential_args -N -s -e "show databases" | grep piwik_` | ||||
|  | ||||
| if $LOGGING ; then | ||||
|    echo -e "\n\t\033[1;32mStarting Script for Archiving Reports of Piwik Databases\033[1;37m\033[m\n\n" | ||||
| fi | ||||
|  | ||||
| declare -i sum_errors=0 | ||||
| for db_name in $databases ; do | ||||
|  | ||||
|    if [ -f "$stats_base_dir/$db_name/console" ];then | ||||
|  | ||||
|       if $LOGGING ; then | ||||
|  | ||||
|          echononl "\tArchiving Reports of Piwik Database \033[1m$db_name\033[m" | ||||
|  | ||||
|          # - Archive Reports | ||||
|          # - | ||||
|          su $http_user -s /bin/bash \ | ||||
|             -c "$php_bin $stats_base_dir/$db_name/console core:archive --url=https://stats.warenform.de/$db_name/" \ | ||||
|             > $error_log 2>&1 | ||||
|          if [[ $? -ne 0 ]]; then | ||||
|             let "sum_errors += 1" | ||||
|             echo_failed | ||||
|             error "$(cat $error_log)" | ||||
|          else | ||||
|             echo_ok | ||||
|             if $VERBOSE ; then | ||||
|                echo | ||||
|                echo "$(cat $error_log)" | ||||
|                echo | ||||
|                echo | ||||
|             fi | ||||
|          fi | ||||
|  | ||||
|       else | ||||
|  | ||||
|          # - Archive Reports | ||||
|          # - | ||||
|          su $http_user -s /bin/bash \ | ||||
|             -c "$php_bin $stats_base_dir/$db_name/console core:archive --url=https://stats.warenform.de/$db_name/" \ | ||||
|             > $error_log 2>&1 | ||||
|          if [[ $? -ne 0 ]]; then | ||||
|             let "sum_errors += 1" | ||||
|             error_cron "Error while executing archive script for database \"$db_name\"" "$(cat $error_log)" | ||||
|          fi | ||||
|  | ||||
|       fi | ||||
|  | ||||
|    else | ||||
|  | ||||
|       if $LOGGING ; then | ||||
|          error "Archive script \"$stats_base_dir/$db_name/console\" for database \"$db_name\" not found!" | ||||
|       else | ||||
|          error_cron "Error: archive script for database \"$db_name\" not found" "$stats_base_dir/$db_name/console" | ||||
|       fi | ||||
|       continue | ||||
|    fi | ||||
|  | ||||
| done | ||||
|  | ||||
| if $LOGGING ; then | ||||
|    if [[ $sum_errors -eq 0 ]]; then | ||||
|       info "Script ended successfully." | ||||
|    else | ||||
|       error "Script ended with \033[1m${sum_errors}\033[m error(s)!" | ||||
|    fi | ||||
| fi | ||||
|  | ||||
| rm -f $error_log | ||||
| exit 0 | ||||
		Reference in New Issue
	
	Block a user