From 6ffad7f22aa09faf89ebeb2911d9ded207f5f45c Mon Sep 17 00:00:00 2001 From: Ignace Date: Sun, 23 Mar 2025 20:51:29 +0000 Subject: [PATCH] one --- README.md | 5 ++++ addEvent.sh | 5 ++++ backup | 14 ++++++++++ backupGitea | 9 +++++++ checkEventService | 5 ++++ filesok | 28 ++++++++++++++++++++ findStrangeImageDescriptions.sh | 39 ++++++++++++++++++++++++++++ linkHomeMovies.sh | 8 ++++++ naked | 8 ++++++ occ | 3 +++ restartplex | 3 +++ sendAlertMail.sh | 3 +++ setImageDescriptionFromTags.sh | 38 +++++++++++++++++++++++++++ setPlexOPhotoTitles.sh | 9 +++++++ smsCheck | 46 +++++++++++++++++++++++++++++++++ smsMe | 11 ++++++++ truncMyLogfiles | 12 +++++++++ virtualenv | 12 +++++++++ 18 files changed, 258 insertions(+) create mode 100644 README.md create mode 100755 addEvent.sh create mode 100755 backup create mode 100755 backupGitea create mode 100755 checkEventService create mode 100755 filesok create mode 100755 findStrangeImageDescriptions.sh create mode 100755 linkHomeMovies.sh create mode 100755 naked create mode 100755 occ create mode 100755 restartplex create mode 100755 sendAlertMail.sh create mode 100755 setImageDescriptionFromTags.sh create mode 100755 setPlexOPhotoTitles.sh create mode 100755 smsCheck create mode 100755 smsMe create mode 100755 truncMyLogfiles create mode 100755 virtualenv diff --git a/README.md b/README.md new file mode 100644 index 0000000..aad526a --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +Usefull scripts for linux maintenance + +all self build + +oh yeah diff --git a/addEvent.sh b/addEvent.sh new file mode 100755 index 0000000..2d853ca --- /dev/null +++ b/addEvent.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# add an event to the event log +# ./addEvent.sh "ERROR,key,timeout,count, text" + +echo "$1" | telnet localhost 1234 >/dev/null 2>&1 diff --git a/backup b/backup new file mode 100755 index 0000000..24b5ace --- /dev/null +++ b/backup @@ -0,0 +1,14 @@ +#!/bin/bash + +rsync -ar /root /var/www/owncloud/data/ignace/files/tmp/backup +rsync -ar /etc /var/www/owncloud/data/ignace/files/tmp/backup +rsync -ar /usr/share/projects /var/www/owncloud/data/ignace/files/tmp/backup +# rsync -ar /home/git/repositories /var/www/owncloud/data/ignace/files/tmp/backup/gitea +# rsync -ar /home/git/data /var/www/owncloud/data/ignace/files/tmp/backup/gitea +rsync -ar /opt /var/www/owncloud/data/ignace/files/tmp/backup +# rsync -ar /var/www /var/www/owncloud/data/ignace/files/tmp/backup +rsync -ar /usr/local/bin /var/www/owncloud/data/ignace/files/tmp/backup/usrlocalbin + +mysqldump Flowers >/var/www/owncloud/data/ignace/files/tmp/backup/flowers.sql + +sudo -u www-data php /var/www/owncloud/occ files:scan --all diff --git a/backupGitea b/backupGitea new file mode 100755 index 0000000..b4accb9 --- /dev/null +++ b/backupGitea @@ -0,0 +1,9 @@ +#!/bin/bash + +systemctl stop gitea +cd /tmp +su git -c '/usr/local/bin/gitea dump -c /etc/gitea/app.ini' +systemctl start gitea +F=$(ls -1rt /tmp/gitea-dump* | tail -1) +cp ${F} /var/www/owncloud/data/ignace/files/tmp/backup/gitea-dump.zip + diff --git a/checkEventService b/checkEventService new file mode 100755 index 0000000..4fb0ff2 --- /dev/null +++ b/checkEventService @@ -0,0 +1,5 @@ +#!/bin/bash + +if [ $( ps -e | grep -c eventService ) -lt 1 ]; then + start-stop-daemon -SbCv -x /opt/Monitor/monitor/eventService.py +fi diff --git a/filesok b/filesok new file mode 100755 index 0000000..afcdc3c --- /dev/null +++ b/filesok @@ -0,0 +1,28 @@ +#!/bin/bash +# check a number of files to see if they have been tampered with, in case of a ransomware attack +# prepare: +# create a gpg private key: gpg --full-generate-key +# create folder /opt/filesOk +# create signature file like: gpg --output file6 --detach-sig /root/plex.README +# verify as in below. + +out="/tmp/fileIntegrity.log" +date >>${out} + +log="/tmp/filesOk.txt" +cd /opt/filesOk +gpg --verify file1 /media/plex/Photos/2010-07-24\ 14.09.24.jpg >${log} 2>&1 +gpg --verify file2 /media/plex/CDs/ABBA/Waterloo/01\ Waterloo.mp3 >>${log} 2>&1 +gpg --verify file3 /media/plex/Gelul/Harrie\ Jekkers/Het\ gelijk\ van\ de\ koffietent/01\ De\ wonderen\ zijn\ de\ wereld\ uit.mp3 >>${log} 2>&1 +gpg --verify file4 /var/www/owncloud/data/ignace/files/DocumentsSamen/Administration/Huisagendas/huisagenda\ 2019.pdf >>${log} 2>&1 +gpg --verify file5 /var/www/owncloud/data/janine/files/2019/Adreswijzigingen.docx >>${log} 2>&1 +gpg --verify file6 /root/plex.README >>${log} 2>&1 +gpg --verify file7 /root/SAVEIPS >>${log} 2>&1 + +if [ $(grep -c BAD ${log}) -gt 0 ] ; then + echo "FILE has been changed". >>${out} + /usr/local/bin/addEvent.sh "ERROR,GPG1,1,1,Tampering! A file signature failed. Check integrity of your files." +else + echo "All files unchanged :-) " >>${out} + /usr/local/bin/addEvent.sh "INFO - All pgp file signature checks were fine." +fi diff --git a/findStrangeImageDescriptions.sh b/findStrangeImageDescriptions.sh new file mode 100755 index 0000000..668d550 --- /dev/null +++ b/findStrangeImageDescriptions.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +function set_file_desc { + image="$*" + echo "${image}" + xid=$(exiftool -s -EXIF:ImageDescription "${image}") + if [ ${#xid} -lt 3 ]; then + xdd=$(exiftool -s3 -Description "${image}") + if [ ${#xdd} -gt 2 ]; then + echo " Description -> ${xdd}" + exiftool -P -overwrite_original -EXIF:ImageDescription="${xdd}" "${image}" + else + xti=$(exiftool -s3 -Title "${image}") + if [ ${#xti} -gt 2 ]; then + echo " Title -> ${xti}" + exiftool -P -overwrite_original -EXIF:ImageDescription="${xti}" "${image}" + else + xon=$(exiftool -s3 -IPTC:ObjectName "${image}") + if [ ${#xon} -gt 2 ]; then + echo " ObjectName -> ${xon}" + exiftool -P -overwrite_original -EXIF:ImageDescription="${xon}" "${image}" + fi + fi + fi + fi + echo " Removing ObjectName" + exiftool -P -overwrite_original -IPTC:ObjectName= "${image}" +} + +function show_file { + ls -l "$*" +} + + +find . -type f -iname "*.jpg" -print0 | while IFS= read -r -d '' file; do + # set_file_desc "${file}" + echo $file +done + diff --git a/linkHomeMovies.sh b/linkHomeMovies.sh new file mode 100755 index 0000000..dc5e029 --- /dev/null +++ b/linkHomeMovies.sh @@ -0,0 +1,8 @@ +#!/bin/bash + + +find /media/plex/Photos -type f -iname "*.mp4" -print0 | while IFS= read -r -d '' file; do + # set_file_desc "${file}" + echo $file +done + diff --git a/naked b/naked new file mode 100755 index 0000000..9317368 --- /dev/null +++ b/naked @@ -0,0 +1,8 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from Naked.app import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/occ b/occ new file mode 100755 index 0000000..3592364 --- /dev/null +++ b/occ @@ -0,0 +1,3 @@ +#! /bin/bash +cd /var/www/owncloud +sudo -E -u www-data /usr/bin/php /var/www/owncloud/occ "$@" diff --git a/restartplex b/restartplex new file mode 100755 index 0000000..1664b02 --- /dev/null +++ b/restartplex @@ -0,0 +1,3 @@ +#!/bin/bash +systemctl restart plexmediaserver + diff --git a/sendAlertMail.sh b/sendAlertMail.sh new file mode 100755 index 0000000..d50504c --- /dev/null +++ b/sendAlertMail.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +python3 /opt/Monitor/monitor/sendAuthMail.py "$1" diff --git a/setImageDescriptionFromTags.sh b/setImageDescriptionFromTags.sh new file mode 100755 index 0000000..4488a67 --- /dev/null +++ b/setImageDescriptionFromTags.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +function set_file_desc { + image="$*" + echo "${image}" + xid=$(exiftool -s -EXIF:ImageDescription "${image}") + if [ ${#xid} -lt 3 ]; then + xdd=$(exiftool -s3 -Description "${image}") + if [ ${#xdd} -gt 2 ]; then + echo " Description -> ${xdd}" + exiftool -P -overwrite_original -EXIF:ImageDescription="${xdd}" "${image}" + else + xti=$(exiftool -s3 -Title "${image}") + if [ ${#xti} -gt 2 ]; then + echo " Title -> ${xti}" + exiftool -P -overwrite_original -EXIF:ImageDescription="${xti}" "${image}" + else + xon=$(exiftool -s3 -IPTC:ObjectName "${image}") + if [ ${#xon} -gt 2 ]; then + echo " ObjectName -> ${xon}" + exiftool -P -overwrite_original -EXIF:ImageDescription="${xon}" "${image}" + fi + fi + fi + fi + echo " Removing ObjectName" + exiftool -P -overwrite_original -IPTC:ObjectName= "${image}" +} + +function show_file { + ls -l "$*" +} + + +find . -name "*.jpg" -type f -print0 | while IFS= read -r -d '' file; do + set_file_desc "${file}" +done + diff --git a/setPlexOPhotoTitles.sh b/setPlexOPhotoTitles.sh new file mode 100755 index 0000000..9cfaebe --- /dev/null +++ b/setPlexOPhotoTitles.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +systemctl stop plexmediaserver + +echo "update metadata_items set title = summary where metadata_type=13 and length(summary)>2;" | /usr/lib/plexmediaserver/Plex\ SQLite "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db" + +systemctl start plexmediaserver + + diff --git a/smsCheck b/smsCheck new file mode 100755 index 0000000..72c6c47 --- /dev/null +++ b/smsCheck @@ -0,0 +1,46 @@ +#!/bin/bash + +# check if /tmp/emailcheck.sms exists, if so, send its content to ignace's phone +FILE_ALL='/tmp/emailcheck.*' +FILE_SMS='/tmp/emailcheck.sms' +FILE_WARNING='/tmp/emailcheck.warning' +FILE_ESCALATE='/tmp/emailcheck.ESCALATE' +TEXT='' + +echo $(date) + +function sendsms { + echo " SMS: $1 $TEXT" + clicksend sms send \ + --to "$1" \ + --body "$TEXT" \ + --csuser 'ignace.suy@gmail.com' \ + --cstoken 'BDAED8AF-29CF-F730-145F-0864C7D86813' >/dev/null 2>&1 +} + + +if [ -f "$FILE_SMS" ]; then + echo " sms file found" + TEXT="$(cat $FILE_SMS)" + rm -f $FILE_SMS + sendAlertMail.sh "$TEXT" + if [ -f "$FILE_ESCALATE" ] ; then + # do this, then restart as if it never happened + rm -rf "$FILE_ALL" + echo " sending escalation messages" + sendsms '+31655195180' + # sendsms '+31624276531' # janine + # sendsms '+31624593799' # xander + # sendsms '+31621301914' # querijn + + # send emails to all involved + python3 /opt/Monitor/monitor/sendEscalationMail.py + /usr/local/bin/enableKatja + else + if [ -f "$FILE_WARNING" ] ; then + echo " sending warning message" + sendsms '+31655195180' + fi + fi +fi + diff --git a/smsMe b/smsMe new file mode 100755 index 0000000..cc3dfba --- /dev/null +++ b/smsMe @@ -0,0 +1,11 @@ +#!/bin/bash +set -x + +clicksend sms send \ + --to '+31655195180' \ + --body "$*" \ + --csuser 'ignace.suy@gmail.com' \ + --cstoken 'BDAED8AF-29CF-F730-145F-0864C7D86813' >/tmp/clicksend.log 2>&1 + +sendAlertMail.sh "SMS sent to your phone: $*" + diff --git a/truncMyLogfiles b/truncMyLogfiles new file mode 100755 index 0000000..471f04d --- /dev/null +++ b/truncMyLogfiles @@ -0,0 +1,12 @@ +#!/bin/bash +# weekly truncate the below files to a 100 lines + +function trunc() { + echo "$(tail -1000 ${1})" > ${1} +} + +trunc /tmp/monitor_emails.log +trunc /tmp/sms.log +trunc /tmp/meteoo.err +trunc /tmp/monitor.err + diff --git a/virtualenv b/virtualenv new file mode 100755 index 0000000..35716ee --- /dev/null +++ b/virtualenv @@ -0,0 +1,12 @@ +#!/usr/bin/python3 +# EASY-INSTALL-ENTRY-SCRIPT: 'virtualenv==20.4.6','console_scripts','virtualenv' +__requires__ = 'virtualenv==20.4.6' +import re +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) + sys.exit( + load_entry_point('virtualenv==20.4.6', 'console_scripts', 'virtualenv')() + )