Home

 

Server::Utility Scripts

Index 
1.  Utility Scripts
    Utilities pakket
    Installatie van pakket
    .mysql_access bestand
2.  Utilities Menu
    Optie 1: Backup-, Restore- en Onderhoudsprogramma's
    Optie 2: Clamav Filescanner
    Optie 3: Piwigo Foto bijschriften
    Optie 4: Extra Utilitiescripts
3.  Backup script
    Optie 1: Server OS backup
    Optie 2: Piwigo backup/synchronisatie
    Optie 3: Wordpress backup/synchronisatie
    Optie 4: Gebruikersinstructies voor herstel met backups
4.  Piwigo backup/synchronisatie
    Optie 1: Backup
    Optie 2: Synchroniseer
    Optie 3: Gebruikersinstructies
    Optie 4: Piwigo User-Hacks Backup
    Optie 5: Maak snapshot van huidige backup
    Optie 6: Reset permissies 'www-data:lanshare' dirs '755' files '64
5.  Wordpress backup/synchronisatie
    Optie 1: Backup
    Optie 2: Synchroniseer
    Optie 3: Gebruikersinstructies
    Optie 4: Wordpress Hacks Backup
6.  Clamav Filescanner
7.  Extra Utilitiescripts
    MariaDB login Piwigo database
    MariaDB login Wordpress database
    Template .mysql_access
    MariaDB handige SQL commando's
    Selecteer en importeer data van thuisserver 192.168.178.4
    Selecteer en importeer data van homeserver 192.168.178.5
    IP-update na verhuizing naar router met andere ip-range
    Installatie informatie voor Utilitiescripts
8.  Overige Scripts
    Aan en Uit usb powerswitch
    Aan-560309 en Uit-560309 usb powerswitch
    Archiveer-host
    Html-owner
    Logisp
    Netwatch
    Net-reboot
    Wol
    Wolping
    WP-htaccess
    Upgrades
    Flex-detect en Flex-integrate

Naar index

UTILITY SCRIPTS

Vooral voor het maken van backups en voor aanvullende opties voor de fotobeheer- en presentatieprogrammas Piwigo en de Wordpress Blog heb ik diverse bash scripts samengesteld die uitgevoerd worden vanaf de shell prompt.
Zie voor linux scripting bijvoorbeeld http://www.freeos.com/guides/lsst/ of zoek met Google: linux scripting

De individuele scripts kunnen rechtstreeks aangeroepen worden of via het script 'utils', dat in feite alleen maar een keuze-menu van de diverse scripts presenteert. Naar verwachting zullen in de toekomst nog meer utility scripts toegevoegd worden.

Naar index

Utilities pakket

Het complete pakket is samengevoegd in utils-bestanden.tar.gz en bevatte op 26/12/2024 de volgende bestanden:

1 utils Utilities hoofdmenu inclusief checks benodigde scripts
  |      
2 |== backup Submenu voor backups van OS, Piwigo, Wordpress en restore instructies.
3 | |== sysback Maken van een backup van het ClearOS Operating System. Script wordt ook gebruikt middels cron.
  | |      
| |== backuppwg Submenu en script voor backup/synchronisatie van de Piwigo foto-galerij.
| | |-- backuppwg-cron script voor backup van de Piwigo foto-galerij via cron-opdracht.
6 | | |-- backuppwg_readme menuoptie voor weergave van gebruikersinstructies incl. instellen van met cron.
7 | | |-- piwigo-hacks menuoptie voor maken van tarballs van alle 'gehackte' PIWIGO bestanden en de originelen.
8 | | |-- piwigo-hacks_readme menuoptie voor weergave van gebruikersinstructies voor piwigo-hacks.
9 | | |-- pwg-snapshot menuoptie voor het maken van een snapshot van de laatste backup
10 | | |-- reset-websitepermission-users menuoptie voor het resetten van gebruikers en permissies van /var/www
  | |      
11  | |== backupwp Submenu en script voor backup/synchronisatie van de wordpress blog.
12 | | |-- backupwp-cron script voor backup van de wordpress blog via cron-opdracht.
13 | | |-- backupwp_readme menuoptie voor weergave van gebruikersinstructies incl. instellen van cron.
14 | | |-- wordpress-hacks menuoptie voor maken van tarballs van alle 'gehackte' Wordpress bestanden en de originelen.
15 | | |-- wordpress-hacks_readme menuoptie voor weergave van gebruikersinstructies voor wordpress-hacks.
  | |      
16 | |== sysback_restore_readme menuoptie met instructies voor OS-restore m.b.v. gemaakte 'sysback' backups.
  |          
17 |== scanopties Submenu en script voor de Clamav filescanner inclusief manuele scanstart
18 | |== scanfiles menuoptie voor ClamAv filescan programma 'clamscan', wordt ook uitgevoerd door cron.daily
19 | |== scanquar menuoptie voor het behandelen van in quarantaine geplaatste bestanden
  |      
20 |== pwg-desc Submenu en script voor import uit Excel van fotobeschrijvingen in Piwigo-database.
21 | |== pwg-desc_readme menuoptie voor weergave van gebruikersinstructies van het fotobeschrijvingen-importprocess.
  |      
22 |== utils-extra Submenu met diverse hulp-scripts
23   |== mysql-pwg menuoptie voor MariaDB login Piwigo-database. Gebruikt .mysql_access bestand
24   |== myswl-wp menuoptie voor MariaDB login Wordpress-database. Gebruikt .mysql_access bestand
25   |== demo.mysql_access menuoptie met voorbeeld .mysql_access bestand met MySQL wachtwoorden voor scripts met SQL.
26   |== sql-samples.txt menuoptie met overzicht handige MariaDB commando's
27   |== rsync_thisserver_with_mainserver menuoptie voor het selecteren en importeren van data van de mainserver 192.168.178.4. Gebruikt .rsync_access_to_mainserver
28   |== rsync_thisserver_with_testserver menuoptie voor het selecteren en importeren van data van de testserver 192.168.178.5. Gebruikt .rsync_access_to_testserver
29   |== server-ipupdate menuoptie voor IP-update na verhuizing van server naar router met andere ip-range. Gebruikt /usr/local/server-net-ips referentiebestand met huidige ip's
30   |== utils_install_readme menuoptie met Installatie informatie van Utilitiescripts
     
31 aan & uit script schakelt USB-gestuurde powerswitch id-67507 aan/uit. default=uit
32 aan-560309 & uit-560309 script schakelt USB-gestuurde powerswitch id-560309 aan/uit. default=aan
33 archiveer-host BackupPC script voor het met crons archiveren van backups.
34 html-owner Cron script voor het checken en corrigeren van ownership van map /var/www/html
35 logisp script dat middels een cron beschibaarheid van het internet logt.
36 netwatch script voor detectie van langdurig verlies internet verbinding. Probeert met script 'net-reboot' het glasvezelmodem en router te re-initieren
37 net-reboot script wodt aangeroepen door 'netwatch' voor schakelen Cleaware USB-powerswitch
38 wol cron-script voor wekken 'ben-pc'
39 wolping script voor het wekken van een netwerk-PC door BackupPC.
40 wp-htaccess cron script voor vervanging .htaccess bestand en integratie in wordpress.conf. Inclusief mailteksten: wp-htaccess-hack.txt, wp-htaccessupdated-mail.txt en wp-updated-mail.txt
41 flex-detect Benodigd voor ClearOS apache configuratie met flex-systeem. Inclusief mailtekst: flex-integrate-error.txt
40 flex-integrate Zie 'flex-detect'. Inclusief mailtekst: flex-mail.txt

Naar index

Installatie

Naar index

.mysql_access bestand
Enkele 'utils' scripts bevatten MySQL queries waarbij wachtwoorden nodig zijn.
Deze wachtwoorden zijn niet 'hardcoded' in de scripts geplaatst maar worden middels een 'include' statement binnengehaald uit het bestand '.mysql_access', een verborgen bestand dat in dezelfde directory '/usr/local/bin' geplaatst wordt.
Bij de hierboven uitgepakte bestanden bevindt zich het template bestand 'demo.mysql_access'.
Open dit bestand in een editor en vervang <MySQL-rootwachtwoord> en<MySQL-gebruikerwachtwoord> met de wachtwoorden die ingevoerd zijn bij de Piwigo en Wordpress installatie.
Zie ook de Piwigo site Piwigo::Backup en de Wordpress site WORDPRESS::Backup and Restore

MYSQL_PWD_R="<MySQL-rootwachtwoord>"
MYSQL_PASSWORD="<MySQL-gebruikerwachtwoord>"

Sla het berwerkte bestand op als '/usr/local/bin/. mysql_access' en wijzig permissies:
# chown root:root .mysql_access
# chmod 400 .mysqlaccess

Naar index

Utilities Menu

Open 'Utilities' menu: # utils

Met het commando # utils wordt het Utilities menu getoond met daarin de beschikbare keuzes.
Voordat het menu getoond wordt controleert het script of alle benodigde bestanden in '/usr/local/bin' wel aanwezig zijn. Als één of meer bestanden missen stopt het script met vermelding van de missende bestanden. Alleen als alle bestanden gevonden worden gaat het script verder met het openen van het menu.
Klik hier om het 'utils' script te bekijken.

Naar index

Optie 1: Backup-, Restore- en Onderhoudsprogramma's
Deze menuoptie kan ook direct vanaf de prompt aangeroepen worden met commando: # backup
Dit script opent met een Backup-menu, zie verderop in deze sectie BACKUP voor verdere details.

Naar index

Optie 2: Clamav Filescanner
Deze menuoptie kan ook direct vanaf de prompt aangeroepen worden met commando: # scanopties
Dit script opent met een Filescan-menu, zie verderop in deze sectie Clamav Filescanner

Naar index

Optie 3: Piwigo Foto bijschriften
Deze menuoptie kan ook vanaf de prompt aangeroepen worden met commando: # pwg-desc
Zie voor het complete verhaal de site Piwigo::Foto's Omschrijven

Naar index

Optie 4: Extra Utilitiescripts
Deze menuoptie opent een submenu dat ook aan de prompt aangeroepen kan worden met: # utils-extra
Dit script opent met een menu met diverse scripts, zie verderop in deze sectie Server::Utilitiescripts > Overige scripts

Naar index

BACKUP script

Optie 1 van het 'utils' script start het script 'backup'

Met het commando # backup wordt het 'Backup' menu getoond met daarin de beschikbare keuzes.
Ook hier wordt, voordat het menu getoond wordt, gecontroleerd of alle benodigde bestanden in '/usr/local/bin' wel aanwezig zijn. Als één of meer bestanden missen stopt het script met vermelding van de missende bestanden. Alleen als alle bestanden gevonden worden gaat het script verder met het openen van het menu.
Klik hier om het 'backup' script te bekijken en/of rechtsklik op pagina en gebruik Save As om bestand op te slaan.

Naar index

Optie 1: Server OS backup
Met de menu-optie 1 wordt een backup gemaakt van het complete Operating System (OS) middels het script 'SYSBACK'.
Dit script wordt al middels een cron regelmatig uitgevoerd, maar er zijn situaties waarin, voor er verder gegaan wordt, het verstandiger is eerst een backup te maken.

Sysback Script
Eenvoudig programmaatje om het OS-systeem van de server als backup op te slaan. Het 'sysback' script wordt door de cron " 15 0 * * 0 /usr/local/bin/sysback &> /dev/null" * #* elke 1e dag van de week om 00.15 uur uitgevoerd. De tar wordt opgeslagen in /vault/sysback. Aan het eind van het script de restore informatie. Zie ook Server::Backup en Restore > Operating System Backup

Klik hier om het 'sysback' script te bekijken en/of rechtsklik op pagina en gebruik Save As om bestand op te slaan.

In het begin van het script worden verschillende variabelen opgeslagen o.a. het pad waar de backups opgeslagen moeten worden (storedir). In deze sectie kan het script dus eenvoudig aangepast worden aan de serverconfiguratie.
Vervolgens wordt van het OS een tarball gemaakt en dit archief wordt voorzien van een bestandsnaam met daarin opgenomen de timestamp. Elke keer dat een een nieuwe backup gemaakt wordt, wordt deze dus weggeschreven met een nieuwe naam. Daarna wordt gecontroleerd of er een vroegere backup ouder dan 2 weken bestaat en deze wordt verwijderd.

Scriptsectie 'sysback':

# Maak tarball van systeem bestanden
tar --exclude=swap.img --exclude=/proc --exclude=/dev --exclude=/tmp --exclude=/mnt
    --exclude=/sys --exclude=/run --exclude=/media --exclude=/var/cache/apt/archives
    --exclude=/usr/src/linux-headers* --exclude=/home --exclude=/store
    --exclude=/vault --exclude=/var/www/html
  -cvzf $sysbackdir$datestamp"-sysback.tar.gz" /;

# delete bestaande tarballs die meer dan twee weken oud zijn
find $sysbackdir -maxdepth 1 -mtime +14 -name *sysback.* -exec rm {} \;;

In de eerste regel wordt een tarball gecreëerd (tar -c) op de locatie 'storedir' en dat de naam krijgt beginnend met de 'timestamp' gevolgd door '-system-backup'. Het archief wordt gemaakt van '/' (root), dus in feite de gehele server behalve de uitgefilterde secties gespecificeerd met --exclude.
In de tweede regel wordt op de opslaglocatie gezocht naar '*system-backup' bestanden die ouder zijn dan 14 dagen en deze worden verwijderd door commando '-exec rm'

Naar index

Optie 2: Piwigo backup/synchronisatie

Optie 2 van het 'backup' menu opent een nieuw script 'backuppwg' met het menu 'Piwigo Backup/Synchronisatie'.
Hier kan gekozen worden voor een backup van alle nieuwe/gewijzigde bestanden of een synchronisatie waarbij bestanden die in de bron niet meer voorkomen ook uit de backup verwijderd worden.
Zie verderop de sectie Piwigo backup/synchronisatie

Het Piwigo backup menu heeft de volgende opties:

  1. Backup - Kopieer nieuwe/gewijzigde bestanden. Behoud bestanden verwijderd uit bron
  2. Synchroniseer - Kopieer nieuwe/gewijzigde bestanden. Verwijder indien alleen in doel
  3. Gebruikersinstructies voor PIWIGO RESTORE en automatisch backup met cron
  4. Piwigo User-Hacks Backup
  5. Maak snapshot van huidige backup
  6. Reset permissies websites in '/var/www/' naar 'www-data:lanshare' dirs '755' files '644'

Naar index

Optie 3: Wordpress backup/synchronisatie

Optie 3 van het 'backup' menu opent een nieuw script 'backupwp' met het menu 'Wordpress Backup/Synchronisatie'.
Hier kan gekozen worden voor een backup van alle nieuwe/gewijzigde bestanden of een synchronisatie waarbij bestanden die in de bron niet meer voorkomen ook uit de backup verwijderd worden.
Zie verder de sectie Wordpress backup/synchronisatie

Het Wordpress backup menu heeft de volgende opties:

  1. Backup - Kopieer nieuwe/gewijzigde bestanden. Behoud bestanden verwijderd uit bron
  2. Synchroniseer - Kopieer nieuwe/gewijzigde bestanden. Verwijder indien alleen in doel
  3. Gebruikersinstructies voor Wordpress RESTORE en automatisch backup met cron
  4. Wordpress User-Hacks Backup

Naar index

Optie 4: Gebruikersinstructies voor Server RESTORE met een SYSBACK backup

Optie 4 opent het tekstbestand 'sysback_restore_readme' met de gebruikersinstructie voor het restoren van het OS met de door het script 'sysback' gemaakte tarball. Zie hiervoor ook bovenstaande sectie Optie 1: Server OS backup

# ===========================================================================================
# RESTORE SERVER met (secties uit) tarball samengesteld met script SYSBACK
# ===========================================================================================
# Sysback v1.4 23 juni 2017 Ben Makkink
# -------------------------------------------------------------------------------------------
# 1. Bestanden (tarballs) zijn opgeslagen in /vault/sysback
# 2. Tarballs zijn gecreeerd met path vanuit root '/'
# 3. !!! Dus extract (restore) uitvoeren vanuit root '/' !!!
#
# Hier een voorbeeld met een backup met naam: 20151025-sysback.tar.gz
# Gebruik volgende commando's:
# #cd /                                              (extract tarball vanuit root)
# #ls /vault/sysback                                 (haal lijst met bestaande tarballs)
# #tar -tzvf /vault/sysback/20151025-sysback.tar.gz  (lijst van bestanden in een tarball)
# voorbeeld: usr
#            usr/lib64/security/
#            usr/lib64/security/pam_chroot.so
#            etc.
# #tar -tzvf /vault/sysback/20151025-sysback.tar.gz usr/local/bin
# toont lijst van bestanden onder usr/local/bin in de tarball
#
# #tar -xzvf /vault/sysback/20151025-sysback.tar.gz
#                              (restore complete '/' directory en subdirectories)
# #tar -xzvf /vault/sysback/20151025-sysback.tar.gz usr
#                              (restore alleen subdir 'usr' en al z'n subdirectories)
# #tar -xzvf /vault/sysback/20151025-sysback.tar.gz usr/local/bin/sysback
#                              (restore alleen bestand 'sysback')
#
# Als bijvoorbeeld met het laatste voorbeeld de fout gemaakt wordt dit commando niet vanuit
# / (root) te geven maar vanuit /home dan belandt het uitgepakte bestand op
# /home/usr/local/bin/sysback. Dus een hele nieuwe reeks met (sub)dirs op de verkeerde plaats.
#
# Opties van commando tar:
# -c creeer,  -t list,  -x extract, -z zip/unzip naar/van gz,  -v verbose
# -f onmiddellijk gevolgt door de tarball naam.
#
# Restore GRUB
# =============
# De tarball 20151025-sysback.tar.gz bevat de rootbestanden en de kernel. Na een
# restore met dit bestand zal ClearOS mogelijk niet opstarten en moet het
# bootprogramma GRUB hersteld worden met behulp van de installatie USB:
# 1. Plaats monitor en keyboard. Boot computer met installatie USB (gaat automatisch als
#    de boot USB geplaatst is. Selecteer de rescue optie.
# 2. a # sudo su                                       e # grub -install /dev/sda1
#    b # mkdir /mnt/test                               f # exit
#    c # mount -t ext4 -o dev/sda1 /mnt/test           g # umount /mnt/test
#    d # cd /dev/sda1                                  h # reboot (zonder CD)
#
# ===========================================================================================

Klik hier om het complete script te bekijken en/of rechtsklik op pagina en gebruik Save As om bestand op te slaan.

Naar index

Piwigo backup/synchronisatie

Het script 'backuppwg' opent een nieuw script met het menu 'Piwigo Backup/Synchronisatie'.
Het script kan direct aan de prompt opgeroepen worden of via de menu's van utils > backup.

Klik hier om het volledige script 'backuppwg' te bekijken of rechts klikken op de pagina en te downloaden middels Save As.

Bestanden waarvan backups gemaakt worden:
Naast het Piwigo programma in /var/www/html/piwigo bevinden de gebruikersbestanden zich in:

Mariadb MySQL database 'piwigo' (wordt geschreven naar subdir 'dbase_dump' van $source_data)
/home/pwgdata/upload   Map waarnaar de gebruikersbestanden (images, video's, etc.) geladen worden middels een webformulier
/home/pwgdata/galleries Map waarnaar de gebruikersbestanden (images, video's, etc.) geladen worden middels FTP of lokale filetransfer en synchroniseer methode
/home/pwgdata/_data Map waar de derivaten van de images opgeslagen worden (geschaalde foto's)
/home/pwgdata/local Map met gebruikersaanpassingen in de configuratie van Piwigo gemaakt met de Local Files Editor

Tevens maken we backups van bestanden met code waarin we wijzigingen (hacks) in hebben aangebracht.

Backup vs Synchronisatie
Bij een backup worden alle nieuwe en/of gewijzigde bestanden in de bron naar het doel gekopieerd, maar alle bestanden die niet meer in de bron voorkomen worden bewaard en niet uit het doel verwijderd
Bij een synchronisatie worden daarentegen alle bestanden die niet meer in de bron voorkomen wel uit het doel verwijderd.
Dit wordt bewerkstelligd door aan het commando 'rsync' de optie '--delete' toe te voegen.
Voer deze laatste optie alleen uit als je zeker weet dat in de bron niet (per ongeluk) bestanden verwijderd zijn!

Piwigo dagelijkse backup met cron
De backup van Piwigo wordt tevens dagelijks gemaakt middels het script 'backuppwg-cron', klik hier om het script te bekijken of te downloaden (rechts klikken en save as).
Er wordt een backup (zonder delete) uitgevoerd, dus als er per ongeluk Piwigo-data verwijderd zijn dan blijven die in de backup gewoon bewaard.
Zie voor uitleg ook de hiernavolgende sectie Optie1: Backup
Het script wordt dagelijks om 01:01 uur uitgevoerd door navolgende regel toe te voegen met crontab:
1 1 * * * /usr/local/bin/backuppwg-cron &> /dev/null
Bij het uitvoeren van het script wordt ook de datum en tijd van de backup opgeslagen in de naam van een dummybestand.

Naar index

Optie 1: Backup
Klik hier om het volledige script 'backuppwg' te bekijken of te downloaden middels rechts klikken en Save As.

Relevante scriptsecties voor Backup:

# Set VARIABLES

# Geef hier aan waar het 'piwigo' programma zich bevindt
source_prog="/var/www/html/piwigo";

# Geef hier aan waar de buiten de webroot geplaatste 'piwigo data' zich bevinden
source_data="/home/pwgdata"

# Geef hier aan waar synchronisatie/backup bestanden opgeslagen moeten worden
storedir="/vault/piwigo/";

# Geef hier aan welk datumformaat gebruikt moet worden voor de bestandsnaam
datestamp=$(date +%Y%m%d);

# Maak de variabele met de datum en tijd van de vorige 'piwigo' backup/synchronisatie
syncfile=$source_data"/synchronisatie*";
lastsync=$(date -r $syncfile +%d/%m/%Y-%X);

echo "Bezig met Export MySQL database 'piwigo'...";
mysqldump -uroot -p$MYSQL_PWD_R --opt --databases piwigo > $source_data/dbase_dump/"piwigo-dump"$datestamp".sql";

# Verwijder synchronisatiedatum bestand uit 'source_data'
rm -rf $syncfile;
# Verwijder oude synchronisatiedatum bestanden uit 'storedir'
    find $storedir -maxdepth 2 -mtime +7 -name synchronisatiedatum* -exec rm {} \;;
    touch $source_data"/synchronisatiedatum-"$datestamp;
# Verwijder dbase_dumps in source_data ouder dan 7 dagen
    find $source_data/dbase_dump/ -maxdepth 1 -mtime +7 -name *piwigo-dump* -exec rm {} \;
    case $keuze in
       1) echo "Bezig met Backup van PIWIGO programma (zonder delete)...";
          rsync -avzh $source_prog $storedir;
          echo;
          echo "Backup van PIWIGO data (zonder delete)...";
          rsync -avzh $source_data $storedir;
          echo "Verwijder databasedumps die niet meer in bron voorkomen...";
          rsync -avzh --delete $source_data/dbase_dump $storedir"pwgdata";
          echo;
          echo -n "   Backup afgerond, druk  om terug te gaan naar menu."; read foo;
          backuppwg;;

Naar index

Optie 2: Synchroniseer
Klik hier om het volledige script 'backuppwg' te bekijken of te downloaden middels rechtsklikken en Save As.

Relevante scriptsectie voor Synchroniseer (zie voor de variabelen bovenstaande scriptsectie):

       2) echo "Bezig met Synchronisatie van PIWIGO programma (met delete)...";
          rsync -av $source_prog --delete $storedir;
          echo;
          echo "Bezig met Synchronisatie van PIWIGO data (met delete)...";
          rsync -av $source_data --delete $storedir;
          echo;
          echo -n "   Synchronisatie afgerond, druk  om terug te gaan naar menu."; read foo;
          backuppwg;;

Naar index

Optie 3: Gebruikersinstructies

Deze optie opent het tekstbestand 'backuppwg_readme' met uitleg over het Piwigo backup/synchronisatie proces en de restore procedures.
Naast de uitleg in 'backuppwg_readme' wordt het Piwigo backup/synchronisatie proces verder in detail beschreven in de site Piwigo::Backup en er zal hier niet verder op ingegaan worden.

Naar index

Optie 4: Piwigo User-Hacks Backup

Deze optie opent het script 'piwigo-hacks' dat opnieuw een menu weergeeft. Klik hier om het script weer te geven en eventueel op te slaan middels Save As

Script voor het samenstellen van een tarball van alle bestanden in PIWIGO die gewijzigd zijn door de gebruiker (voor en na de eigen wijzigingen). De tarballs piwigo-hacks.tar.gz en piwigo-hacks-org.tar.gz worden opgeslagen in /home/pwgdata/hacks/.

Klik hier om optie 1: de gebruikersinstructies te bekijken en mogelijk op te slaan middels Save As.
In deze instructies wordt uitgelegd wat te doen vóórdat een Piwigo Update uitgevoerd wordt om te zorgen dat eigengemaakte hacks in programmacode bewaard blijven.

De voor opties 2 en 3 Maak piwigo-hacks tarbal zijn de relevante scriptsecties:

echo -n "     Tarball van de eigen gemodificeerde PIWIGO-bestanden maken? Y/N: ";
read yn;
case $yn in
[Yy])
 echo "     De volgende bestanden worden gearchiveerd.";
 echo "     ================================================================================";
 cd /var/www/html/piwigo;  #Ga naar de /piwigo directory
  tar -cvf tmp.tar index.php; #bestanden met eigen bewerkingen naar archief tmp.tar
  tar -rvf tmp.tar include/extra-index.inc.php;
  tar -rvf tmp.tar include/category_default.inc.php;
  tar -rvf tmp.tar themes/Pure_clear_blue/icon/sprite.png;
  tar -rvf tmp.tar plugins/Fotorama/fotorama/fotorama@2x.png;
  tar -rvf tmp.tar admin/site_update.php;
  tar -rvf tmp.tar plugins/PWG_Stuffs/theme/template/stuffs_logon.tpl;
  tar -rvf tmp.tar include/user.inc.php;
  tar -rvf tmp.tar plugins/BatchDownloader/template/images/zip.png;
  tar -rvf tmp.tar plugins/rv_menutree/template/rv_menutree_categories.tpl;
  tar -rvf tmp.tar plugins/Fotorama/template/fotorama-content.tpl;
  tar -rvf tmp.tar themes/smartpocket/themeconf.inc.php;
  tar -rvf tmp.tar plugins/piwigo-videojs/template/vjs-5-player.tpl;
  tar -rvf tmp.tar plugins/piwigo-videojs/video-js-5/videojs-local.css;
  tar -rvf tmp.tar plugins/piwigo-videojs/video-js-5/videojs-local-mobile.css;
  tar -rvf tmp.tar plugins/ShareAlbum/main.inc.php;
  tar -rvf tmp.tar plugins/ShareAlbum/include/public_events.inc.php;
  tar -rvf tmp.tar plugins/ShareAlbum/admin/template/config.tpl;
  tar -rvf tmp.tar plugins/ShareAlbum/admin/config.php;

gzip tmp.tar;  # Comprimeer het bestand met gzip
# Geef een fatsoenlijke naam en locatie aan het bestand
mv tmp.tar.gz /home/pwgdata/hacks/piwigo-hacks.tar.gz;
echo "     ================================================================================";
echo "     PIWIGO bestanden met eigen aanpassingen zijn gearchiveerd in /home/pwgdata/hacks";
echo -n "     Druk  om terug te gaan naar menu."; read foo; piwigo-hacks ;;

*) echo
   echo -n "     Optie gecanceld, druk  om terug te gaan naar menu."; read foo; piwigo-hacks ;;
   esac;;
3)
  yn="n"
   echo;
   echo -n "     Tarball van pre-upgrade *.org PIWIGO-bestanden maken? Y/N: ";
   read yn;
   case $yn in
   [Yy])
    echo "     De volgende bestanden worden gearchiveerd.";
    echo "     ================================================================================";
    cd /var/www/html/piwigo;  #Ga naar de /piwigo directory
     tar -cvf tmp.tar index.php.org;
     tar -rvf tmp.tar include/extra-index.inc.php.org
     tar -rvf tmp.tar include/category_default.inc.php.org;
     tar -rvf tmp.tar themes/Pure_clear_blue/icon/sprite.png.org;
     tar -rvf tmp.tar plugins/Fotorama/fotorama/fotorama@2x.png.org;
     tar -rvf tmp.tar admin/site_update.php.org;
     tar -rvf tmp.tar plugins/PWG_Stuffs/theme/template/stuffs_logon.tpl.org;
     tar -rvf tmp.tar include/user.inc.php.org;
     tar -rvf tmp.tar plugins/BatchDownloader/template/images/zip.png.org;
     tar -rvf tmp.tar plugins/rv_menutree/template/rv_menutree_categories.tpl.org;
     tar -rvf tmp.tar plugins/Fotorama/template/fotorama-content.tpl.org;
     tar -rvf tmp.tar themes/smartpocket/themeconf.inc.php.org;
     tar -rvf tmp.tar plugins/piwigo-videojs/template/vjs-5-player.tpl.org;
     tar -rvf tmp.tar plugins/piwigo-videojs/video-js-5/videojs-local.css.bck;
     tar -rvf tmp.tar plugins/piwigo-videojs/video-js-5/videojs-local-mobile.css.bck;
     tar -rvf tmp.tar plugins/ShareAlbum/main.inc.php.org;
     tar -rvf tmp.tar plugins/ShareAlbum/include/public_events.inc.php.org;
     tar -rvf tmp.tar plugins/ShareAlbum/admin/template/config.tpl.org;
     tar -rvf tmp.tar plugins/ShareAlbum/admin/config.php.org;
    gzip tmp.tar;  # Comprimeer het bestand met gzip

   # Geef een fatsoenlijke naam en locatie aan het bestand
   mv tmp.tar.gz /home/pwgdata/hacks/piwigo-hacks-org.tar.gz;
   echo "     ================================================================================";
   echo "     Originele bestanden voor de hacks zijn gearchiveerd in /home/pwgdata/hacks";

Voor optie 4: Hack-bestanden vergelijken zijn de relevante scriptsecties:
Bij een Piwigo upgrade worden eigen hacks mogelijk overschreven. Na het maken van een hack wordt een kopie bewaard met de extentie .bck"
Dit *.bck bestand heeft dezelfde timestamp als het bestand met de hack.
Als na een upgrade de timestamps verschillen betekent dit dat het bestand met de hack overschreven is door de upgrade.
De hack moet in dat geval opnieuw aangebracht worden.

  echo -n "     Hack-bestanden nu vergelijken? Y/N: ";
  read yn;
  case $yn in
 [Yy])
echo;
cd /var/www/html/;
echo "ls -l piwigo/index*";
ls -l piwigo/index*;
echo -n "   Druk  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/include/extra-index*";
ls -l piwigo/include/extra-index*;
echo -n "   Druk een   om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/admin/site_update.php*";
ls -l piwigo/admin/site_update.php*;
echo -n "   Druk een  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/include/user.inc.php*";
ls -l piwigo/include/user.inc.php*;
echo -n "   Druk een  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/include/functions_user.inc.php*";
ls -l piwigo/include/functions_user.inc.php*;
echo -n "   Druk een  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/include/category_default.inc.php*";
ls -l piwigo/include/category_default.inc.php*;
echo -n "   Druk een  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/plugins/Fotorama/fotorama/fotorama@2x.png*";
ls -l piwigo/plugins/Fotorama/fotorama/fotorama@2x.png*;
echo -n "   Druk een  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/plugins/PWG_Stuffs/theme/template/stuffs_logon.tpl*";
ls -l piwigo/plugins/PWG_Stuffs/theme/template/stuffs_logon.tpl*;
echo -n "   Druk  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/plugins/BatchDownloader/template/images/zip.png*";
ls -l piwigo/plugins/BatchDownloader/template/images/zip.png*;
echo -n "   Druk  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/plugins/piwigo-videojs/template/vjs-5-player.tpl*";
ls -l piwigo/plugins/piwigo-videojs/template/vjs-5-player.tpl*;
echo -n "   Druk  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/plugins/piwigo-videojs/video-js-5/videojs-local.css*";
ls -l piwigo/plugins/piwigo-videojs/video-js-5/videojs-local.css*;
echo -n "   Druk  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/plugins/piwigo-videojs/video-js-5/videojs-local-mobile.css*";
ls -l piwigo/plugins/piwigo-videojs/video-js-5/videojs-local-mobile.css*;
echo -n "   Druk  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/plugins/piwigo-videojs/admin/admin_sync.php*";
ls -l piwigo/plugins/piwigo-videojs/admin/admin_sync.php*;
echo -n "   Druk  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/plugins/piwigo-videojs/admin/admin_batchmanager.php*";
ls -l piwigo/plugins/piwigo-videojs/admin/admin_batchmanager.php*;
echo -n "   Druk  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/plugins/ShareAlbum/main.inc.php*";
ls -l piwigo/plugins/ShareAlbum/main.inc.php*;
echo -n "   Druk  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/plugins/ShareAlbum/include/sharealbum_functions.inc.php*";
ls -l piwigo/plugins/ShareAlbum/include/sharealbum_functions.inc.php*;
echo -n "   Druk  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/plugins/ShareAlbum/admin/template/config.tpl*";
ls -l piwigo/plugins/ShareAlbum/admin/template/config.tpl*;
echo -n "   Druk  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/plugins/ShareAlbum/admin/config.php*";
ls -l piwigo/plugins/ShareAlbum/admin/config.php*;
echo -n "   Druk  om verder te gaan: "; read foo;
echo;

echo "ls -l piwigo/plugins/rv_menutree/template/rv_menutree_categories.tpl*";
ls -l piwigo/plugins/rv_menutree/template/rv_menutree_categories.tpl*;
# echo -n "   Druk  om verder te gaan: "; read foo;
echo;
echo "     ================================================================================";
echo "     Einde check PIWIGO hack-bestanden";

Voor optie 5:Templatebestanden vergelijken zijn de relevante scriptsecties:
Van enkele templates zijn templates afgeleid met eigen configuraties. De templates hoeven dus niet 'gehackt' te worden maar worden vervangen door de aangepaste templates."; echo "
Bij een Piwigo upgrade worden templates mogelijk gewijzigd/overschreven. De eigen lokale template blijft weliswaar bewaard, maar mist mogelijk aanpassingen/toevoegingen in de nieuwe Piwigo template."; echo "
Om dit te monitoren maken we van de originel template die gebruikt is bij het maken van de eigen lokale template een backup bestand met extensie .bck.
Als na een upgrade de timestamps tussen het origineel en de backup verschillen is het zaak de eigen template opnieuw aan te maken maar nu op basis van de laatste Piwigo template.";

  echo -n "     Template-bestanden nu vergelijken? Y/N: ";
  read yn;
  case $yn in
 [Yy])
echo;
echo
cd /var/www/html/piwigo/themes/default/template/;

echo "ls -l *header.tpl*";
ls -l *header.tpl*;
ls -l /home/pwgdata/template-extension/*header.tpl*
echo -n "   Druk een  om verder te gaan: "; read foo;
echo;

echo "ls -l *identification.tpl*";
ls -l identification.tpl*;
ls -l /home/pwgdata/template-extension/*t_identification.tpl*
echo -n "   Druk een  om verder te gaan: "; read foo;
echo;

echo "ls -l *index.tpl*";
ls -l *index.tpl*;
ls -l /home/pwgdata/template-extension/*index.tpl*
echo -n "   Druk een  om verder te gaan: "; read foo;
echo;

echo "ls -l *mainpage_categories.tpl*";
ls -l *mainpage_categories.tpl*;
ls -l /home/pwgdata/template-extension/*mainpage_categories.tpl*
echo -n "   Druk een  om verder te gaan: "; read foo;
echo;

echo "ls -l *menubar_identification.tpl*";
ls -l *menubar_identification.tpl*;
ls -l /home/pwgdata/template-extension/*menubar_identification.tpl*
echo -n "   Druk een  om verder te gaan: "; read foo;
echo;

echo "ls -l *picture.tpl*";
ls -l *picture.tpl*;
ls -l /home/pwgdata/template-extension/*picture.tpl*
echo -n "   Druk een  om verder te gaan: "; read foo;
echo;

echo "ls -l *thumbnails.tpl*";
ls -l *thumbnails.tpl*;
ls -l /home/pwgdata/template-extension/*thumbnails.tpl*
echo -n "   Druk een  om verder te gaan: "; read foo;

Naar index

Optie 5: Maak snapshot van huidige backup

Bij elke dagelijkse 'Backup' of 'Synchronisatie' van Piwigo worden de laatste bestanden opgeslagen.
Als er bij het experimenteren fouten ontstaan dan worden die ook in de backup meegenomen. De laatst goedwerkende versie wordt hiermee overschreven.
Daarom is het raadzaam eerst een snapshot van de backup te maken voordat we aan het sleutelen gaan. Deze snapshot wordt opgeslagen in een nieuwe map in "$storedir" met vermelding van de timestamp.

Let op: Er wordt geen kopie gemaakt van de map _data met o.a. galleries!

Klik hier om het volledige script 'pwg-snapshot' te bekijken of te downloaden middels rechts klikken en Save As.

# Geef hier aan welk datumformaat gebruikt moet worden voor de
bestandsnaam van de backup datestamp=$(date +%Y%m%d)

# Maak variabele met pad waar de snapshot opgeslagen moet worden
snapshotdir=$storedir"snapshot-van-backup-"$datestamp"/"; # Maak snapshot # ============= mkdir $snapshotdir; cp -a $source_prog $snapshotdir; mkdir $snapshotdir"pwgdata/"; cp -a $source_data"/dbase_dump" $snapshotdir"pwgdata"; cp -a $source_data"/hacks" $snapshotdir"pwgdata"; cp -a $source_data"/local" $snapshotdir"pwgdata"; cp -a $source_data"/template-extension" $snapshotdir"pwgdata"; cp -a $source_data"/upload" $snapshotdir"pwgdata";

Naar index

Optie 6: Reset permissies websites in '/var/www/' naar 'www-data:lanshare' dirs '755' files '64

Klik hier om het volledige script 'reset-website-permissions-users' te bekijken of te downloaden middels rechtsklikken en Save As.

chown -R www-data:lanshare /var/www/;
chmod -R 755 /var/www/;
find /var/www/html -type f -name '*' -exec chmod 644 '{}' \;

Naar index

Wordpress backup/synchronisatie

Het script 'backupwp' opent een nieuw menu 'Wordpress Backup/Synchronisatie'.
Het script kan direct aan de prompt opgeroepen worden of via de menu's van utils > backup.

Klik hier om het volledige script 'backupwp' te bekijken of te downloaden middels rechtsklik en Save As.

Bestanden waarvan backups gemaakt worden:
Naast het Wordpress programma in /var/www/html/blog bevinden de gebruikersbestanden zich in:

Mariadb MySQL database 'wordpress' (wordt met dit script geschreven naar subdir 'dbase_dump' van /home/wpdata)
/home/wpdata/  Map waarnaar de gebruikersbestanden (images, video's, etc.) geladen worden

Tevens maken we backups van bestanden met code waarin we wijzigingen (hacks) in hebben aangebracht.

Backup vs Synchronisatie
Bij een backup worden alle nieuwe en/of gewijzigde bestanden in de bron naar het doel gekopieerd, maar alle bestanden die niet meer in de bron voorkomen worden bewaard en niet uit het doel verwijderd
Bij een synchronisatie worden daarentegen alle bestanden die niet meer in de bron voorkomen wel uit het doel verwijderd.
Dit wordt bewerkstelligd door aan het commando 'rsync' de optie '--delete' toe te voegen.
Voer deze laatste optie alleen uit als je zeker weet dat in de bron niet (per ongeluk) bestanden verwijderd zijn!

Wordpress blog dagelijkse backup met cron
De backup van Wordpress blog wordt tevens dagelijks gemaakt middels het script 'backupwp-cron', klik hier om het script te bekijken of te downloaden (save as).
Er wordt een backup (zonder delete) uitgevoerd, dus als er per ongeluk Wordpress blog-data verwijderd zijn dan blijven die in de backup gewoon bewaard.
Zie voor uitleg ook de hiernavolgende sectie Optie1: Backup
Het script wordt dagelijks om 01:01 uur uitgevoerd door navolgende regel toe te voegen met crontab:
1 1 * * * /usr/local/bin/backupwp-cron &> /dev/null
Bij het uitvoeren van het script wordt ook de datum en tijd van de backup opgeslagen in de naam van een dummybestand.

Naar index

Optie 1: Backup
Klik hier om het volledige script 'backupwp' te bekijken of te downloaden middels rechtsklik en Save As.

Relevante scriptsecties voor Backup:

# Set VARIABLES

# Geef hier aan waar het 'wordpress' programma zich bevindt
source_prog="/var/www/html/blog";

# Geef hier aan waar de buiten de webroot geplaatste 'wordpress data' zich bevinden
source_data="/home/wpdata"

# Geef hier aan waar wordpress-backups opgeslagen moeten worden
storedir="/vault/wordpress/";

# Geef hier aan welk datumformaat gebruikt moet worden voor de betandsnaam van de backup
datestamp=$(date +%Y%m%d);

# Maak de variabele met de datum en tijd van de vorige wordpress backup/synchronisatie
syncfile=$source_data"/synchronisatie*";
lastsync=$(date -r $syncfile +%d/%m/%Y-%X);
    echo "Bezig met Export MySQL database 'wordpress'...";
    mysqldump -uroot -p$MYSQL_PWD_R --opt --databases wordpress > $source_data/dbase_dump/"wp-dump"$datestamp".sql";
    echo;
    rm -rf $syncfile;
# Verwijder oude synchronisatiedatum bestanden uit 'storedir'
    find $storedir -maxdepth 2 -mtime +7 -name synchronisatiedatum* -exec rm {} \;;
    touch $source_data"/synchronisatiedatum-"$datestamp;
# Verwijder dbase_dumps in source_data ouder dan 7 dagen
    find $source_data/dbase_dump/ -maxdepth 1 -mtime +7 -name *wp-dump* -exec rm {} \;
    case $keuze in
       1) echo "Bezig met Backup van Wordpress (zonder delete)...";
          rsync -av $source_prog $storedir;
          echo;
          echo "Bezig met Backup van WPDATA (zonder delete)...";
          rsync -av $source_data $storedir;
          echo "Verwijder databasedumps die niet meer in bron voorkomen...";
          rsync -avzh --delete $source_data/dbase_dump $storedir"wpdata";
          echo;
          echo -n "   Backup afgerond, druk  om terug te gaan naar menu."; read foo;
          backupwp;;

Naar index

Optie 2: Synchroniseer
Klik hier om het volledige script 'backupwp' te bekijken of te downloaden middels Save As.

Relevante scriptsectie voor Synchroniseer (zie voor de variabelen bovenstaande scriptsectie):

       2) echo "Bezig met Synchronisatie van Wordpress (met delete)...";
          rsync -av $source_prog --delete $storedir;
          echo
          echo "Bezig met Synchronisatie van WPDATA (met delete)...";
          rsync -av $source_data --delete $storedir;
          echo;
          echo -n "   Synchronisatie afgerond, druk  om terug te gaan naar menu."; read foo;
          backupwp;;

Naar index

Optie 3: Gebruikersinstructies

Deze optie opent het tekstbestand 'backupwp_readme' met uitleg over het Wordpress-blog backup/synchronisatie proces en de restore procedures.
Naast de uitleg in 'backupwp_readme' wordt het Wordpress backup/synchronisatie proces verder in detail beschreven in de site Wordpress::Backup en er zal hier niet verder op ingegaan worden.

Naar index

Optie 4: Wordpress Hacks Backup

Deze optie opent het script 'wordpress-hacks' dat opnieuw een menu weergeeft. Klik hier om het script weer te geven en eventueel op te slaan middels Save As

Klik hier om optie 1: de gebruikersinstructies te bekijken en mogelijk op te slaan middels Save As.
In deze instructies wordt uitgelegd wat te doen vóórdat een Wordppress Update uitgevoerd wordt om te zorgen dat eigengemaakte hacks in programmacode bewaard blijven.

Voor optie 2 is de relevante scriptsectie:

    echo -n "     Tarball van de eigen gemodificeerde WORDPRESS-bestanden maken? Y/N: ";
    read yn;
    case $yn in
     [Yy])
      echo "     De volgende bestanden worden gearchiveerd.";
      echo "     ================================================================================";  
      cd /var/www/html/blog;  #Ga naar de ../blog directory
        tar -cvf tmp.tar wp-config.php; #bestanden met eigen bewerkingen naar archief tmp.tar
        tar -rvf tmp.tar wp-content/themes/layout-builder/functions.php;
        tar -rvf tmp.tar wp-content/themes/layout-builder/content-page.php;
        tar -rvf tmp.tar wp-admin/includes/media.php;
        tar -rvf tmp.tar wp-includes/link-template.php;

      gzip tmp.tar;  # Comprimeer het bestand met gzip
     # Geef een fatsoenlijke naam en locatie aan het bestand
      mv tmp.tar.gz /home/wpdata/hacks/wordpress-hacks.tar.gz;
      echo "     ================================================================================";
      echo "     WORDPRESS bestanden met eigen aanpassingen zijn gearchiveerd in /home/wpdata/hacks";

Voor optie 3 is de relevante scriptsectie:

    echo -n "     Tarball van pre-upgrade *.org WORDPRESS-bestanden maken? Y/N: ";
    read yn;
    case $yn in
     [Yy])
      echo "     De volgende bestanden worden gearchiveerd.";
      echo "     ================================================================================";  
      cd /var/www/html/blog;  #Ga naar de ../blog directory
        tar -cvf tmp.tar wp-config.php.org;
        tar -rvf tmp.tar wp-content/themes/layout-builder/functions.php.org;
        tar -rvf tmp.tar wp-content/themes/layout-builder/content-page.php.org;
        tar -rvf tmp.tar wp-admin/includes/media.php.org;
        tar -rvf tmp.tar wp-includes/link-template.php.org;

      gzip tmp.tar;  # Comprimeer het bestand met gzip

     # Geef een fatsoenlijke naam en locatie aan het bestand
      mv tmp.tar.gz /home/wpdata/hacks/wordpress-hacks-org.tar.gz;
      echo "     ================================================================================";
      echo "     Originele bestanden voor de hacks zijn gearchiveerd in /home/wpdata/hacks";

Naar index

Clamav Filescanner

Het script 'scanopties' opent een nieuw menu 'Clamav Filescanner'.
Het script kan direct aan de prompt opgeroepen worden of via de menu's van utils > Clamav Filescanner.

Klik hier om het volledige script 'scanopties' te bekijken of te downloaden middels rechtsklik en Save As.

Optie 1: Wijzig te scannen directories
Hier wordt de teksteditor geopend op het bestand /var/clamav/scandirs.txt
De te scannen mappen moeten in 1 regel geplaatst worden met een spatie ertussen.
Zodra gereed :wq om te saven.

Opties 2 en 3 worden, inclusief de scripts 'scanfiles' en 'scanquar', uitgebreid behandeld in Server::Configureren > Beveiliging

Naar index

Extra Utilitiescripts

Het script 'utils-extra' opent een nieuw menu 'Hulp Utilities Homeserver'.
Het script kan direct aan de prompt opgeroepen worden of via de menu's van utils > Clamav Filescanner.

Klik hier om het volledige script 'utils-extra' te bekijken of te downloaden middels rechtsklik en Save As.

Het 'Hulp Utilitiescripts' menu bevat een verzameling van scripts die in de loop der jaren hun nut hadden en ook nog kunnen hebben.


Optie 1: MariaDB login Piwigo database

Met script 'mysql-pwg' wordt ingelogd op de MariaDB Piwigo database voor het uitvoeren van SQL queries.
Zie ook MariaDB handige SQL commando's
Het script gebruikt het bestand .mysql_access.
Klik hier om het script 'mysql-pwg' te bekijken of te downloaden middels rechtsklik en Save As.


Optie 2: MariaDB login Wordpress database
Met script 'mysql-wp' wordt ingelogd op de MariaDB Wordpress database voor het uitvoeren van SQL queries.
Zie ook MariaDB handige SQL commando's
Het script gebruikt het bestand .mysql_access
Klik hier om het script 'mysql-wp' te bekijken of te downloaden middels rechtsklik en Save As.


Optie 3: Template .mysql_access
Het tekstbestand 'demo.mysql_access' is een template voor het aanmaken van bijvoorbeeld het .mysql_access bestand zoals gebruikt voor het inloggen onder optie 1 en 2 gebruikt.

MYSQL_PWD_R=""
MYSQL_USER="piwigo"
MYSQL_PASSWORD=""

MYSQL="mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -Dpiwigo"
MYSQLROOT="mysql -uroot -p$MYSQL_PWD_R -Dpiwigo"


Optie 4: MariaDB handige SQL commando's

Deze menuoptie opent een tekstdocument met een overzicht van Piwigo gerelateerde SQL queries die van pas kunnen komen.
Het kan ook gebruikt worden om typo's te voorkomen door de gewenste regel(s) te kopiëren en aan de shell prompt te plakken.
Vervang hierbij <MySQL-rootwachtwoord> en/of <MySQL-gebruikerwachtwoord> door de wachtwoorden zoals ook ingevoerd in bestand '.mysql_access'

Bestand /usr/local/bin/sql-samples.txt
Voorbeeld:

MYSQL commando's
Note: Bash commando's beginnen met 'mysql' of 'mariadb'
==================================================================================================
Nuttige commando's
MariaDB> show databases;                Laat alle MYSQL databases zien
MariaDB> select database ();            Laat zien welke database actief is
MariaDB> use piwigo;                    Zet piwigo als actieve database
MariaDB> show tables;                   Laat alle tables van actieve db zien
MariaDB> describe pi_images;            Geeft structuur van table pi_images
MariaDB> show columns from pi_images;   --als boven--
MariaDB> select now();                  Geeft systeemtijd
MariaDB> select user();                 Geeft huidige gebruiker
MariaDB> select now(), user();          Combinatie van bovenstaande

=================================================================================================

*************
* WORDPRESS *
*************
=================================================================================================
Maak Wordpress database aan
---------------------------
# mysqladmin -uroot -p'' CREATE wordpress;
of
# mariadb-admin -uroot -p'' CREATE wordpress;

Geef user 'wordpress' beheer over Wordpress database
----------------------------------------------------
.....
...etc.

Klik hier om het bestand 'sql-samples.txt' te bekijken of te downloaden middels rechtsklik en Save As.


Optie 5: Selecteer en importeer data van thuisserver 192.168.178.4

Script 'rsync_thisserver_with_thuisserver' voor het synchroniseren van deze server (doel) met de thuisserver (bron)
Het script heeft een include '/usr/local/bin/.rsync_access_to_thuisserver'
Klik hier om het script 'rsync_thisserver_with_thuisserver' te bekijken of te downloaden middels rechtsklik en Save As.

De volgende bestanden kunnen geselecteerd worden:


Optie 6: Selecteer en importeer data van homeserver 192.168.178.5

Script 'rsync_thisserver_with_homeserver' voor het synchroniseren van deze server (doel) met de testserver (bron)
Het script heeft een include '/usr/local/bin/.rsync_access_to_homeserver'
Klik hier om het script 'rsync_thisserver_with_homeserver' te bekijken of te downloaden middels rechtsklik en Save As.

De volgende bestanden kunnen geselecteerd worden:


Optie 7: IP-update na verhuizing naar router met andere ip-range

Zie ook Linux::FAQ en Oplossingen > Server verhuizen naar ander netwerk

Script 'server-ipupdate' wordt gebruikt om de server aan ter sluiten op een nieuwe/andere router met een andere IP-range dan de huidige.
Klik hier om het script 'server-ipupdate' te bekijken of te downloaden middels rechtsklik en Save As.

Het script heeft tevens een referentiebestand /usr/local/server-netips nodig.

# *****************************************************************************************
# * Server-ipupdate  Ben Makkink 10 december 2021                                         *
# * Als de server in het thuisnetwerk geconfigureerd is zijn er enkele configuraties      *
# * waarin sommige IP's van het thuisnetwerk hard-coded ingevoerd zijn                    *
# * Als de server om wat voor reden dan ook aangesloten wordt op een andere router met    *
# * een andere IP range dan kloppen deze hardcoded configuraties niet meer                *
# * Dit script vergelijkt de oude IP's in het referentiebestand /usr/local/server-netips  *
# * met de nieuwe router-IP en als er een verschil is wordt de optie aangeboden in        *
# * diverse configuraties de nodige wijzigingen aan te brengen.                           *
# * Deze nieuwe IP range wordt vervolgens opnieuw opgeslagen in het referentiebestand     *
# * /usr/local/server-netips                                                              *
# *****************************************************************************************


Bestand 'server-netips'
Voordat de update uitgevoer wordt moet ervoor gezorgd worden dat de IP's van de server aangesloten op de oude router opgeslagen zijn in een referentiebestand /usr/local/server-netips met onderstaande inhoud:

# Lokaal bestand gebruikt en onderhouden door het script 'ipupdate'.
# Met het script wordt een IP update uitgevoerd als de server opgenomen is
# in een netwerk met een ander LAN IP. Op de server zijn op diverse locaties
# zoals firewall, httpd en samba configuraties IP adressen hardcoded opgenomen.
# Deze IP adressen worden met het script geupdated.
#
# Huidig LAN IP
lanip 192.168.178.0
#
# Huidig IP van de PC (ssh client)van waaruit het netwerk en server beheerd wordt.
clientip 192.168.178.2
#
# Huidig IP van de server
hostip 192.168.178.4

Vul in:
- Voor lanip het IP adres van de gateway IP van de oude router.
- Voor clientip het IP adres van de admin PC
- Voor hostip het IP adres van de server


Optie 8: Installatie informatie voor Utilitiescripts

Deze menuoptie opent het tekstdocument utils_install_readme met installatieinformatie

 *****************************************************************
 * Instructies voor het installeren van het de utility scripts   *
 * Ben Makkink 27 december 2024                                  *
 *****************************************************************
 Het pakket utils-bestanden.tar.gz bevat een collectie van
 utilitiescripts voor het maken van backups, etc
 Kopieer utils-bestanden.tar.gz naar een map  op de server
 Voer vervolgens uit als root
 Ga naar directory /usr/local/bin met commando cd /usr/local/bin
 Pak tarball utils-bestanden.tar.gz uit met commando:
 tar -xzvf /utils-bestanden.tar.gz
 *****************************************************************
 Dit resulteert in o.a. volgende bestanden:
  1. utils
  2. utils-extra
  3. utils_install_readme
  4. backup
  5. sysback
  6. sysback_restore_readme
  7. backuppwg + backuppwg-cron + backuppwg_readme + piwigo-hacks
     + piwigo-hacks_readme + pwg-snapshot
     + reset-websitepermission-users
  8. backupwp + backupwp-cron + backupwp_readme + wordpress-hacks
     +  wordpress-hacks_readme + wp-htaccess + wp-updated-mail.txt
     + wp-htaccess-hack.txt + wp-htaccessupdated-mail.txt
  9. scanopties + scanfiles + scanquar
 10. pwg-desc + pwg-desc_readme
 11. demo.mysql_access
 12. sql-samples.txt
 13. logisp
 14. wol + wolping
 15. aan + aan-560309 + uit + uit-560309
 16. html-owner + reset-website-permissions-users
 17. logisp
 18. mysql-pwg + mysql-wp
 19. net-reboot + netwatch
 20. server-ipupdate

 Voor uitvoeren van menu script geef commando: utils

Naar index

Overige Scripts

Hier nog enkele scripts die aan de commandolijn gebruikt worden door de admin en/of prgramma maar niet opgenomen in een menu.

Naar index

Aan en Uit
De scripts 'Aan' en 'Uit' stuurt de USB Powerswitch die gebruikt wordt om via de prompt op de homeserver de testserver aan, respectievelijk uit te schakelen.
Zie voor deze toepassing ExploringLinux::Projecten > USB Netschakelaar

Aan

clewarecontrol -c 1 -d 67507 -as 0 1;
echo "Testserver is aan";

Uit

clewarecontrol -c 1 -d 67507 -as 0 0;
echo "Testserver is uit";

Naar index

Aan-560309 en Uit-560309
De scripts 'Aan-560309' en 'Uit-560309' worden gebruikt voor de USB Powerswitch die gebruikt wordt door de server voor het re-setten van de internetconnectie.
Zie voor deze toepassing ExploringLinux::Projecten > Netwatch met reboot van modem en router

Aan-560309

# schakelaar is omgebouwd, stand '0' is ruststand dwz verbonden
clewarecontrol -c 1 -d 560309 -as 0 0;
echo $(clewarecontrol -c 1 -d 560309 -rs 0);
echo "schakelaar is omgebouwd, stand '0' is ruststand
 dwz rode lamp = verbonden";

Uit-560309

#schakelaar is omgebouwd, stand '1' verbreekt contact
clewarecontrol -c 1 -d 560309 -as 0 1;
echo $(clewarecontrol -c 1 -d 560309 -rs 0);
echo "schakelaar is omgebouwd, stand '1' dwz groene lamp = uitgeschakeld";

Naar index

Archiveer-host

Cron-script om met BackkupPC een archief (tarball) te maken van een RSYNC Backup van een Host.
Dit script bevat het commando voor het schedulen met een CRON.
Zie voor nadere uitleg en het script Server::Backup en Restore sectie archiveHost schedulen met script en cron

#!/bin/bash
#***************************************************************************************
#* ARCHIVEER-HOST  Ben Makkink 05-03-2016                                              *
#* Script om met BackkupPC een archief (tarball) te maken van een Host RSYNC Backup    *
#* Dit script bevat het on-line commando voor het schedulen met een CRON               *
#***************************************************************************************
# In BackupPC is een host 'archivaris' geconfigureerd. Deze host kan een archief
# (tarball) aanmaken van de laatste backup van een andere (rsyncd/rsync) host. Van host
# 'archivaris' is ArchiveDest gezet naar /vault/backuppc.
# Deze map is chown backkuppc:root en chmod 750.
# Het starten van een archivering kan in BackkupPC helaas niet gescheduled worden, maar
# wel met een commandline in dit script en een cron.
#
# De commandline syntax is:
# # BackupPC_archiveStart archiveHost userName hosts...
#
# Hierin is archiveHost 'archivaris' en userName de naam van de aanvrager: 'root'
# Voor hosts... vullen we de gewenste te archiveren host in.
# BackupPC draait niet in een shell, dus het is noodzakelijk dat de volledige 'paths'
# gebruikt worden
#***************************************************************************************
#
arch_host=$1

# Voer het archiverings-commando uit als BackupPC-user 'backuppc'
sudo -u backuppc /usr/share/BackupPC/bin/BackupPC_archiveStart archivaris root $arch_host;

# Oude tarballs, behalve de laatste worden verwijderd.
find /vault/backuppc/ -maxdepth 1 -mtime +7 -name $arch_host".*" -exec rm {} \;;

# Crons voor elke individuele host zullen dit script wekelijks uitvoeren met het
# commando : archiveer-host  Waarbij  de naam van de te archiveren host is

Naar index

Html-owner

Cron-script voor het checken, rapporteren en corrigeren van ownership van map /var/www/html

##########################################################################################
# Cron script voor het checken en corrigeren van ownership van map /var/www/html         #
# Ben Makkink 21 december 2024                                                           #
##########################################################################################

#!/bin/sh
bericht="Op "$(date +"%d/%m/%Y %T")" is van /var/www/html de user en/of group gewijzigd.
Probeer de actie te achterhalen die dit veroorzaakt.
De wijziging is teruggezet met het commando: chown www-data:lanshare /var/www/html"; OWN=$(stat -c '%U' /var/www/html); if [ $OWN != www-data ]; then echo $bericht | mail -s 'Website User gewijzigd!' ben@makkink.eu; chown www-data:lanshare /var/www/html; fi

Naar index

Logisp

Met het cron-script 'logisp' wordt getest of er verbinding met het internet (Internet Service Provider) is en gelogd naar het tekstbestand 'isp_log.text' in de webroot.
Het logbestand is nu in de browser uit te lezen.

#!/bin/sh
NOW=$(date +"%d/%m/%Y %T")
ping -q -w3 -c1 8.8.8.8
if [ "$?" != 0 ]; then
  echo $NOW: "Geen internettoegang" >> /var/www/html/isp_log.txt
# else
#  echo $NOW: "OK" >> /var/www/html/isp_log.txt
fi

Het script wordt middels een cron uitgevoerd. Voor bijvoorbeeld elke minuut een check voegen we hiervoor met crontab de volgende regel toe:
* * * * * /usr/local/bin/logisp &> /dev/null

Naar index

Netwatch

Met het cron-script 'netwatch' wordt een langdurig verlies van de internetverbinding geconstateerd.
In dat geval wordt middels het script 'net-reboot' geprobeerd de verbinding te herstellen door een reboot van de router en glasvezelmodem.

Zie ook Exploring Linux::Projectmap

Klik hier om het script 'netwatch' te bekijken of te downloaden middels rechtsklik en Save As.

Dit script wordt gebruikt i.p.v. voorgaand script 'logisp' en de log wordt geschreven naar /var/www/html/isp_log.txt

Het script wordt middels een cron uitgevoerd. Voor bijvoorbeeld elke minuut een check voegen we hiervoor met crontab de volgende regel toe:
* * * * * /usr/local/bin/netwatch &> /dev/null

Doel van script:

# ********************************************************************
# * Netwatch                                 Ben Makkink  30-09-2022 *
# * Detecteert langdurig verlies internet verbinding en probeert     *
# * het glasvezelmodem en router te re-initieren                     *
# * Als er gedurende 2 uur aaneengesloten geen internetverbinding is *
# * worden het glasvezelmodem en de router gereboot (2 pogingen)     *
# * Als dan nog geen verbinding gemaakt wordt, wordt er 24 uur       *
# * gepauzeerd voordat opnieuw een poging gedaan wordt.              *
# ********************************************************************

Zodra de internetverbinding weer hersteld is wordt een notificatie e-mail naar admin verstuurd.

Naar index

Net-reboot

Het script 'net-reboot` wordt aangeroepen door 'netwatch' om de router en het glasvezelmodem te rebooten.

# **************************************************************
# * Net-reboot                       Ben Makkink 30-09-2022    *
# * Via USB schakelen van netstroom met de CleWare Switch      *
# * Door de voeding van glasvezel modem en router uit- en      *
# * en vervolgens weer in te schakelen worden deze gereboot.   *
# * Dit script wordt gebruikt door script 'netwatch'           *
# * Zie www.makkink.eu/exploringlinux/html/projectmap.html#usb *
# * voor installatie van Clewarecontrol op een Linux server    *
# **************************************************************

# echo "Voeding voor modem&router wordt uitgeschakeld";
# schakelaar is omgebouwd, stand '1' resulteerd in 'onderbreken'
clewarecontrol -c 1 -d 560309 -as 0 1;

# echo " Wacht op ledigen van cache";
sleep 15;

# echo "Voeding voor modem&router wordt ingeschakeld";
# schakelaar is omgebouwd, stand '0' is ruststand dwz verbonden
clewarecontrol -c 1 -d 560309 -as 0 0;

Naar index

Wol

Script 'wol' wordt gebruikt om een LAN verbonden PC te wekken.
De in onderstaande script genoemde 'ben-pc' moet wel opgenomen zijn in /etc/ethers om deze te koppelen aan het MAC adres
Zie voor nadere uitleg en het script Server::Backup en Restore sectie WOL met BackupPC

#!/bin/bash
# ***********************************************************************
# * WOL Ben Makkink 31-1-2024                                           *
# ***********************************************************************
# * Dit script is voor Wake On Lan van een PC in het thuisnetwerk via   *
# * een cron.                                                           *
# * Om bijvoorbeeld de PC 'ben-pc' om 22:14 uur te wekken voeg de       *
# * volgende cron toe:                                                  *
# * 14 22 * * * /usr/local/bin/wol ben-pc &> /dev/null                  *
# ***********************************************************************

ETHWAKE='/usr/bin/sudo /sbin/ether-wake'
$ETHWAKE $1

Naar index

Wolping

Als BackupPC een hostprofiel uitvoert wordt als eerste een ping naar de host (client-PC) gestuurd.
Alleen als een ping ontvangen wordt gaat de uitvoering verder.

In de BackupPC is 'PingCmd' gezet op: $pingPath -c1 -w3 $host (Hierbij is $pingPath het pad /bin/ping).
Deze entry voor 'PingCmd' wijzigen we in: /usr/local/bin/wolping -c1 -w3 $host
In plaats van het gewone ping programma wordt nu het, zelf aan te maken, script 'wolping' uitgevoerd.

Het 'wolping' script stuurt ook de ping maar als deze niet lukt wordt met ether-wake geprobeerd de host te wekken en na enige wachttijd wordt dan opnieuw een ping gestuurd.

Zie voor nadere uitleg en het script Server::Backup en Restore sectie WOL met BackupPC

Naar index

WP-htaccess

Cron-script 'wp-htaccess' controleert of er door bijvoorbeeld een wordpress update een wijziging aangebracht is in het .htaccess bestand in de wordpress root /var/www/html.

#********************************************************************
#* WP-HTACCESS script Ben Makkink 13 december 2024                  *
#* Wordpress maakt gebruik van een .htaccess bestand                *
#* Als we geen .htaccess willen gebruiken moet de code overgebracht *
#* worden naar http configuratie in ../conf-available/wordpress.conf*
#* Als echter een update plaatsvind in .htaccess zonder dat er een  *
#* wordpress update plaatsvond kan dit wijzen op een hack en moet   *
#* deze code NIET naar wordpress.conf overgezet worden!             *
#********************************************************************

Zie voor nadere uitleg Server::Apache > Wordpress.conf en het script wp-htaccess

Naar index

Upgrades

Cron-script 'upgrades' checkt hoeveel upgrades voor geïnstalleerde packages en hun dependables beschikbaar zijn.

# ***************************************************************************
# * UPGRADES CRONScript                              Ben Makkink 26/01/2025 *
# * De Ubuntu server voert security upgrades automatisch uit                *
# * De reguliere updates wordt bij voorkeur op de hand gedaan, om           *
# * te voorkomen dat mogelijke bugs de werking verstoren. Voordat de upgrade*
# * uitgevoerd wordt kan er eerst een systeem backup gemaakt worden zodat   *
# * zonodig de upgrade ongedaan gemaakt kan worden                          *
# ***************************************************************************

Zie voor meer informatie Server::Configureren > Handmatige upgrades voor packages en dependencies en het script upgrades

 

Naar index

Flex-detect en Flex-integrate

Deze scripts werden gebruikt in de ClearOS server. Bij elke verandering Apache configuratie in de WebUI Webconfig moesten eigen directives binnen de Virtual Hosts op de hand opnieuw aangebracht worden.
Het cron-script 'Flex-detect' was om te detecteren dat er een verandering in de configuratie was aangebracht, waarop 'Flex-integrate' aangeroepen werd om de Apache configuratie opnieuw te compileren.
Zie ClearOS Server::Apache > Custom_httpd.conf compileren met script

Deze scripts zijn met de Ubuntu Server niet nodig, maar worden nog bewaard omdat ze een paar nuttige voorbeelden zijn.

'Flex-detect' is een cron-script
Elke keer dat er een configuratiewijziging uitgevoerd is worden nieuwe virtual host bestanden gemaakt. Dit wordt gedetecteerd door Flex-detect en vervolgens door Flex-integrate opnieuw gecompileerd in

Bekijk hier bijbehorende bestanden zijn /etc/httpd/conf.d/custom_httpd.inc

#!/bin/bash
# ************************************************************************
# * Flex-conf detectie en notificatie  Ben Makkink 24 juli 2020          *
# * Heeft bestand /usr/local/bin/flex-mail.txt nodig voor mail inhoud    *
# ************************************************************************

# check voor webserver update resulterend in nieuwe flex-{80,443}.conf's
if [ -f /etc/httpd/conf.d/flex-80.conf ]
 then
    # hernoem flex-{80,443}.conf's naar flex{80,443}.new zodat deze niet
    # geladen worden maar beschikbaar blijven voor integratie in
    # custom-httpd.conf
    mv /etc/httpd/conf.d/flex-80.conf /etc/httpd/conf.d/flex80.new;

    if [ -f /etc/httpd/conf.d/flex-443.conf ]
     then
        mv /etc/httpd/conf.d/flex-443.conf /etc/httpd/conf.d/flex443.new;
    fi

    # stuur notificatie naar de admin met de inhoud van flex-mail.txt
    /usr/sbin/sendmail ben@makkink.eu < /usr/local/bin/flex-mail.txt
fi

'Flex-integrate' is het script dat de nieuwe virtual host bestanden flex80.new en flex443.new samen met bestand /etc/httpd/conf.d/custom_httpd.inc geintegreert in het apache configuratiebestand /etc/httpd/conf.d/custom_httpd.conf

#!/bin/bash
# ************************************************************************
# * Flex-integrate detectie en notificatie  Ben Makkink 24 juli 2020     *
# * Script detecteert nwe flex-80.conf en flex-443.conf bestanden als    *
# * gevolg van een Webconfig update van de HTTPDconfiguratie.            *
# * De nwe bestanden worden hernoemd naar flex80.new en flex443.new      *
# * en vervolgens worden deze samen met de eigen directives in           *
# * /etc/httpd/conf.d/custom_httpd.inc geintegreerd in het webserver     *
# * configuratiebestand /etc/httpd/conf.d/custom_httpd.conf              *
# * Er wordt ook een notificatie naar de webadmin gestuurd.              *
# * Dit script 'flex-integrate' maakt gebruik van de volgende bestanden: *
# *   - /etc/httpd/conf.d/custom_httpd.inc                               *
# *   - /etc/httpd/conf.d/flex80.new                                     *
# *   - /etc/httpd/conf.d/flex443.new                                    *
# *   - /usr/local/bin/flex-mail.txt                                     *
# *   - /usr/local/bin/flex-integrate-error.txt                          *
# ************************************************************************

Bekijk hier de gebruikte bestanden:

/usr/local/bin/flex-detect
/usr/local/bin/flex-integrate
/usr/local/bin/flex-mail.txt
/usr/local/bin/flex-integrate-error.txt
/etc/httpd/conf.d/custom_httpd.inc
/etc/httpd/conf.d/custom_httpd.conf

Zie voor details ClearOS Server::Apache > Custom_httpd.conf compileren met script

Naar index