Files
yatm/scripts/maketape
Samuel N Cui f87ec06af6 feat: useable
2022-12-12 22:48:28 +08:00

46 lines
1020 B
Bash
Executable File

#!/usr/bin/env bash
set -e;
POSITIONAL_ARGS=()
DEVICE="/dev/nst0"
SG_DEVICE=`sg_map | grep ${DEVICE} | awk '{print $1}'`
while [[ $# -gt 0 ]]; do
case $1 in
-s)
BARCODE="$2"
shift # past argument
shift # past value
;;
-n)
NAME="$2"
shift # past argument
shift # past value
;;
-*|--*)
echo "Unknown option $1"
exit 1
;;
*)
POSITIONAL_ARGS+=("$1") # save positional arg
shift # past argument
;;
esac
done
echo "format tape as number '$BARCODE', name '$NAME'"
echo "copy '${POSITIONAL_ARGS[@]}' to tape"
set -- "${POSITIONAL_ARGS[@]}"
set -ex;
stenc -f ${DEVICE} -e on -k /root/tape.key -a 1 --ckod
sleep 3
mkltfs -f -d ${SG_DEVICE} -s $BARCODE -n $NAME
sleep 3
ltfs -o devname=${SG_DEVICE} -o noatime -o sync_type=unmount -o work_directory=/opt/ltfs -o capture_index -o min_pool_size=256 -o max_pool_size=1024 -o eject /ltfs
sleep 3
acp --report /opt/ltfs/$BARCODE.json --to-linear $@ /ltfs/
sleep 3
umount /ltfs