From c9164ac058fa09bf9ce7f99628412bba568602f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Sachse?= <joerg.sachse@slub-dresden.de> Date: Tue, 31 Jan 2023 21:57:55 +0100 Subject: [PATCH] fix: ignore hidden System Volume Information directories and make quarantine* aliases more robust (thx @steidl) --- tasks/configure_processing_user.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tasks/configure_processing_user.yml b/tasks/configure_processing_user.yml index a429576..9a5b7a6 100644 --- a/tasks/configure_processing_user.yml +++ b/tasks/configure_processing_user.yml @@ -102,8 +102,10 @@ alias verify_bag='perl -e '\''use Archive::BagIt; my $bag = Archive::BagIt->new(".")->verify_bag( {report_all_errors => 1} );'\''; echo $?' alias block_subapp='echo "SubApp must not run, startup is blocked manually by an administrator. This file is here for a reason! Only remove it after consultation!" > ~/.subapp/BLOCKFILE' alias unblock_subapp='rm -f ~/.subapp/BLOCKFILE' - alias list_quarantine='for sip in $(ls -t ~/.subapp/quarantine); do echo "$sip# => $(head -n 1 ~/.subapp/quarantine/$sip/sip.ERROR), $(head -n 3 ~/.subapp/quarantine/$sip/sip.ERROR | tail -n 1)"; done | column -s "#" -t' - alias list_quarantine_full='for sip in $(ls -t ~/.subapp/quarantine); do echo -e "$sip# ($( stat -c %y ~/.subapp/quarantine/$sip/sip.ERROR ))# => $(cat ~/.subapp/quarantine/$sip/sip.ERROR)\n===\n"; done | column -s "#" -t' - alias quarantine_summary='echo -e "$( ls ~/.subapp/quarantine/ | wc -l ) SIPs in quarantine.\n"; for sip in $(ls -t ~/.subapp/quarantine/); do echo "$( du -sh /mnt/import/${sip} ),# $( stat -c %y ~/.subapp/quarantine/$sip/sip.ERROR ),# $( find /mnt/import/${sip}/ -type f | wc -l) files"; done | column -s "#" -t' - alias quarantine_size='sum=0; for dir in $(find ~/.subapp/quarantine/ -name "sip.bagit"); do if [[ -d $(realpath ${dir}) ]]; then sum=$((sum+$(du -s $(realpath ${dir}) | cut -f1))); else echo "broken Q-Link: ${dir}"; fi; done; echo "$((sum/1024)) MiB in quarantine."' + + alias list_quarantine='readarray -d "" sips < <(find ~/.subapp/quarantine -mindepth 1 -maxdepth 1 -print0 -type d); for sip in "${sips[@]}"; do echo "$sip# => $(head -n 1 "$sip/sip.ERROR"),$(head -n 3 "$sip/sip.ERROR" | tail -n 1)"; done | column -s "#" -t' + alias list_quarantine_full='readarray -d "" sips < <(find ~/.subapp/quarantine -mindepth 1 -maxdepth 1 -print0 -type d); for sip in "${sips[@]}"; do echo -e "$sip# ($( stat -c %y "$sip/sip.ERROR" ))# => $(cat "$sip/sip.ERROR")\n===\n"; done | column -s "#" -t' + alias quarantine_size='sum=0; readarray -d "" sips < <(find ~/.subapp/quarantine/ -name "sip.bagit" -print0); for dir in "${sips[@]}"; do if [[ -d "$(realpath "${dir}")" ]]; then sum=$((sum+$(du -s "$(realpath "${dir}")" | cut -f1))); else echo "broken Q-Link: ${dir}"; fi; done; echo "$((sum/1024)) MiB in quarantine."' + alias quarantine_summary='echo -e "$( ls ~/.subapp/quarantine/ | wc -l ) SIPs in quarantine.\n"; readarray -d "" sips < <(find ~/.subapp/quarantine -mindepth 1 -maxdepth 1 -print0 -type d); for sip in "${sips[@]}"; do sip="$(basename "${sip}")"; echo "$( du -sh "/mnt/import/${sip}" ),# $( stat -c %y "~/.subapp/quarantine/${sip}/sip.ERROR" ),# $( find "/mnt/import/${sip}/" -type f | wc -l) files"; done | column -s "#" -t' + alias next='/usr/bin/perl -I /usr/local/perl/ /usr/local/bin/subapp_bagit.pl --config-file /home/processing/.subapp/subapp.cfg --single_run; echo "################# LOG #####################"; echo "last 10 lines..."; tail -n 10 /var/log/subapp/sips.log; echo "################# PROBLEMS #####################"; START=$( grep -n "starting..." /var/log/subapp/subapp.log | tail -1 | cut -f1 -d: ); ALL_LINES=$( wc -l < /var/log/subapp/subapp.log ); let LINES=$ALL_LINES-$START; echo "checking last $LINES log lines..."; tail -n $LINES /var/log/subapp/subapp.log | grep --color -e "\[ERROR\]" -e "\[FATAL\]" -e "\[WARN\]"' -- GitLab