Compare commits

..

5 Commits

Author SHA1 Message Date
497723afe1
add upgrade pyvenv scripts 2025-11-01 08:37:06 +01:00
aaff46632c
add git_submodule_init_uppdate 2025-11-01 08:36:52 +01:00
6dcf5d2cfe
add convert pdf script 2025-11-01 08:36:36 +01:00
0e35a74e38
add back scripts for b00 2025-11-01 08:36:23 +01:00
e612c2ddd0
update arch post update script 2025-11-01 08:36:08 +01:00
7 changed files with 195 additions and 35 deletions

View File

@ -17,49 +17,61 @@ source /etc/profile
ask_overwrite() { ask_overwrite() {
echo "Existing destination folder ($ARCH_BOOT_DST_CURRENT_VERSION), do you want to overwrite? (y/n)"; echo "Existing destination folder ($ARCH_BOOT_DST_CURRENT_VERSION), do you want to overwrite? (y/n)";
read OVERWRITE; read OVERWRITE;
test "$OVERWRITE" = "y" && return return `test "$OVERWRITE" = "y"`
echo "Do not overwrite. Exitting gently..."
exit 0;
} }
PACMAN_BIN=${PACMAN_BIN:-/usr/bin/pacman} do_upgrade() {
BOOT_SYMLINK=${BOOT_SYMLINK:-current} PKG_NAME=$1
ARCH_INITRAMFS=$2
ARCH_INITRAMFS_FALLBACK=$3
ARCH_VMLINUZ=$4
PACMAN_BIN=${PACMAN_BIN:-/usr/bin/pacman}
BOOT_SYMLINK=${BOOT_SYMLINK:-$PKG_NAME}
BOOT_ORIG=/boot
ARCH_BOOT_DST=$TMP_BOOT_DST/$BOOT_DIR_SUFFIX
CURRENT_VERSION=`${PACMAN_BIN} -Qi $PKG_NAME \
| sed -n '/^Version *:/p' \
| grep -o '[^ ]*$'`
ARCH_BOOT_DST_CURRENT_VERSION=$ARCH_BOOT_DST/$CURRENT_VERSION
test -d $ARCH_BOOT_DST_CURRENT_VERSION \
&& test `realpath $ARCH_BOOT_DST/$BOOT_SYMLINK` = $ARCH_BOOT_DST_CURRENT_VERSION \
&& echo "$PKG_NAME version already up to date ($CURRENT_VERSION)" && return 1;
mkdir $ARCH_BOOT_DST_CURRENT_VERSION || ask_overwrite || return 1;
(
cd $BOOT_ORIG;
# Copy the new kernel files to the real destination in boot fs
cp -t $ARCH_BOOT_DST_CURRENT_VERSION $ARCH_INITRAMFS $ARCH_INITRAMFS_FALLBACK $ARCH_VMLINUZ;
)
(
cd $ARCH_BOOT_DST;
# Re-link the good version
test -h $BOOT_SYMLINK && rm $BOOT_SYMLINK;
ln -s $CURRENT_VERSION $PKG_NAME;
)
echo "$PKG_NAME version updated to $CURRENT_VERSION"
}
CURRENT_VERSION=`${PACMAN_BIN} -Qi linux \
| sed -n '/^Version *:/p' \
| grep -o '[^ ]*$'`
BOOT_BLK=/dev/$LVM_VG_BOOT/$LVM_LG_BOOT_NAME
BOOT_ORIG=/boot
TMP_BOOT_DST=`mktemp -d` TMP_BOOT_DST=`mktemp -d`
BOOT_BLK=/dev/$LVM_VG_BOOT/$LVM_LG_BOOT_NAME
ARCH_BOOT_DST=$TMP_BOOT_DST/$BOOT_DIR_SUFFIX
ARCH_BOOT_DST_CURRENT_VERSION=$ARCH_BOOT_DST/$CURRENT_VERSION
ARCH_INITRAMFS=initramfs-linux.img
ARCH_INITRAMFS_FALLBACK=initramfs-linux-fallback.img
ARCH_VMLINUZ=vmlinuz-linux
mount $BOOT_BLK $TMP_BOOT_DST; mount $BOOT_BLK $TMP_BOOT_DST;
test -d $ARCH_BOOT_DST_CURRENT_VERSION \
&& test `realpath $ARCH_BOOT_DST/$BOOT_SYMLINK` = $ARCH_BOOT_DST_CURRENT_VERSION \
&& echo "Linux version already up to date ($CURRENT_VERSION)" && exit 0;
mkdir $ARCH_BOOT_DST_CURRENT_VERSION || ask_overwrite; do_upgrade linux initramfs-linux.img initramfs-linux-fallback.img vmlinuz-linux \
|| echo "Skipped linux upgrade"
( do_upgrade linux-lts initramfs-linux-lts.img initramfs-linux-lts-fallback.img vmlinuz-linux-lts \
cd $BOOT_ORIG; || echo "Skipped linux-lts upgrade"
# Copy the new kernel files to the real destination in boot fs
cp -t $ARCH_BOOT_DST_CURRENT_VERSION $ARCH_INITRAMFS $ARCH_INITRAMFS_FALLBACK $ARCH_VMLINUZ;
)
(
cd $ARCH_BOOT_DST;
# Re-link the good version
test -h $BOOT_SYMLINK && rm $BOOT_SYMLINK;
ln -s $CURRENT_VERSION current;
)
echo "Linux version updated to $CURRENT_VERSION"
umount $TMP_BOOT_DST; umount $TMP_BOOT_DST;
rmdir $TMP_BOOT_DST; rmdir $TMP_BOOT_DST;
exit 0; exit 0;

12
backup_os_b00.sh Executable file
View File

@ -0,0 +1,12 @@
#!/usr/bin/bash
BACKUP=$1
TARGET=$2
if [[ $BACKUP == "/" ]];
then
BACKUP=""
fi
rsync -vaAX --delete-excluded --delete $BACKUP/ --exclude=$BACKUP/dev/* --exclude=$BACKUP/proc/* --exclude=$BACKUP/sys/* --exclude=$BACKUP/tmp/* --exclude=$BACKUP/run/* --exclude=$BACKUP/mnt/* --exclude=$BACKUP/media/* --exclude=$BACKUP/cdrom/* --exclude=$BACKUP/lost+found/* --exclude=$BACKUP/var/lib/containers/* --exclude=$BACKUP/var/lib/lxcfs/* --exclude=$BACKUP/var/lib/backuppc $TARGET

22
backup_vms_b00.sh Executable file
View File

@ -0,0 +1,22 @@
#!/bin/bash
# Gitea
/root/scripts/borg_partclone_backup_multipartition.sh vg0 gitea-rootfs 100M 1 ptrs.top /mnt/borg-b00 boot || exit 1
sleep 1
/root/scripts/borg_partclone_backup_multipartition.sh vg0 gitea-rootfs 100M 3 ptrs.top /mnt/borg-b00 root || exit 1
sleep 1
/root/scripts/borg_partclone_backup_multipartition.sh vg0 gitea-var-lib 100M 1 ptrs.top /mnt/borg-b00 var-lib || exit 1
sleep 1
# Db
/root/scripts/borg_partclone_backup_multipartition.sh vg0 db-rootfs 100M 1 ptrs.top /mnt/borg-b00 root || exit 1
sleep 1
/root/scripts/borg_partclone_backup_multipartition.sh vg0 db-var-lib-mysql 100M 1 ptrs.top /mnt/borg-b00 var-lib-mysql || exit 1
sleep 1
# Mail
/root/scripts/borg_partclone_backup_multipartition.sh vg0 mail-rootfs 100M 1 ptrs.top /mnt/borg-b00 root || exit 1
sleep 1
/root/scripts/borg_partclone_backup_multipartition.sh vg0 mail-var-lib-postgresql 100M 1 ptrs.top /mnt/borg-b00 var-lib-postgresql
sleep 1
/root/scripts/borg_partclone_backup_multipartition.sh vg0 mail-var-mail 100M 1 ptrs.top /mnt/borg-b00 var-mail

20
convert_pdf.sh Executable file
View File

@ -0,0 +1,20 @@
#!/usr/bin/bash
set -e
for i in 2025*.jpg;
do
pdfname=$(echo $i|sed 's/jpg$/pdf/')
gs \
-q \
-dNOSAFER \
-sPAPERSIZE=a4 \
-dNOPAUSE \
-dPDFSETTINGS=/printer \
-dBATCH \
-dCompressFonts=true \
-sDEVICE=pdfwrite \
-sOutputFile=$pdfname \
/usr/share/ghostscript/lib/viewjpeg.ps \
-c \
\($i\) viewJPEG showpage
done;

1
git_submodule_init_update.sh Executable file
View File

@ -0,0 +1 @@
git submodule update --init --recursive

84
upgrade_pyvenv.sh Executable file
View File

@ -0,0 +1,84 @@
#!/usr/bin/bash
set -e
check_arguments() {
[[ -f "$1" ]] && return
echo "Missing configuration file argument ($1)"
exit 1
}
check_venv_path() {
[[ -n "$VENV_PATH" ]] && \
[[ -d "$VENV_PATH" ]] && \
[[ -f "$VENV_PATH/bin/python" ]] && \
return;
echo "$VENV_PATH is not a virtual environment"
exit 1
}
check_requirements_file() {
[[ -n "$REQUIREMENTS_FILE" ]] && \
[[ -f "$REQUIREMENTS_FILE" ]] && \
return;
echo "$REQUIREMENTS_FILE does not exist"
exit 1
}
check_repo_path() {
[[ -n "$REPO_PATH" ]] && \
[[ -d "$REPO_PATH" ]] && \
(cd $REPO_PATH && git status) && return;
echo "$REPO_PATH is not a git repository"
exit 1
}
check_arguments $1
source $1
echo "Upgrading virtual environment for `basename $1`"
check_venv_path
check_requirements_file
check_repo_path
PIP_PATH=$VENV_PATH/bin/pip
reset_venv() {
rm -r $VENV_PATH
python3 -m venv $VENV_PATH
}
update_repo() {
cd $REPO_PATH
git fetch
if [[ `git log HEAD..origin | wc -l` == 0 ]];
then
echo "No changes in current branch of repository"
else
echo "Changes done in current branch:\n"
git log HEAD..origin
echo "\nPull new changes? (y/n)"
read pull_changes
[[ "$pull_changes" == "y" ]] && git pull
fi
}
install_requirements() {
$PIP_PATH install -r $REQUIREMENTS_FILE
}
echo "Resetting venv..."
reset_venv
update_repo
echo "Installing requirements..."
install_requirements > /dev/null
echo "Done."

9
upgrade_pyvenv_projects.sh Executable file
View File

@ -0,0 +1,9 @@
#!/usr/bin/bash
set -e
CONF_DIR=/home/emixam/.config/pyvenv_projects.d
for conf_file in $CONF_DIR/*;
do
upgrade_pyvenv.sh $conf_file;
done;