utils/move_archives.sh
Cryptoval Trading Technologies bea5ae340a inital
2025-05-17 02:19:12 +00:00

92 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# FOR hosts with limited disk space - move to storage server
function usage {
echo -n "Usage: ${0}"
echo -n " -H <host_label>"
echo -n " [ -A <archive_dir> (default /works/archive)]"
echo -n " [-D <older than time criteria> (default: '2 days ago')]"
echo
exit 1
}
echo Starting $0 $*
# ---- D e f a u l t s
ArchiveDir=/works/archive
DateCriteria="2 days ago"
FromHost=$(hostname -s)
# ---- D e f a u l t s
# ---------------- cmdline
while getopts "A:H:D:" opt; do
case ${opt} in
A )
ArchiveDir=$OPTARG
;;
H )
FromHost=$OPTARG
;;
D )
DateCriteria=$OPTARG
;;
\? )
echo "Invalid option: -$OPTARG" >&2
usage
;;
: )
echo "Option -$OPTARG requires an argument." >&2
usage
;;
esac
done
# ---------------- cmdline
if [ "${FromHost}" == "" ]
then
usage
fi
TargetHost=cloud21.cvtt.vpn
TargetRootDir=/opt/store/cvtt/archive
Oldest=$(date -d "${DateCriteria}" '+%Y-%m-%d %H:%M:%S')
echo "Looking for log files older than ${DateCriteria} in ${ArchiveDir}"
Cmd="find ${ArchiveDir}/"
Cmd="${Cmd} '('"
Cmd="${Cmd} -name '*.log'"
Cmd="${Cmd} -o -name '*.log.*'"
Cmd="${Cmd} -o -name '*.logs.*'"
Cmd="${Cmd} -o -name '*.tgz'"
Cmd="${Cmd} ')'"
Cmd="${Cmd} -type f"
Cmd="${Cmd} -not -newermt \"${Oldest}\""
echo ${Cmd}
files=$(eval ${Cmd})
if [ "$files" == "" ]
then
echo "No files found older than ${Oldest} in ${ArchiveDir}"
else
Target="${TargetHost}:${TargetRootDir}/${FromHost}/"
echo "Moving files to ${Target}:"
echo -----------------
for f in ${files}
do
echo ${f}
done
Cmd="rsync -ahvv"
Cmd="${Cmd} --remove-source-files"
Cmd="${Cmd} $files"
Cmd="${Cmd} ${Target}"
echo ${Cmd}
# exit
eval ${Cmd}
fi
echo Done ${0} ${*}