EVOLUTION-MANAGER
Edit File: npcapmove
#!/bin/bash if [ -z "${1}" ] || [ -z "${2}" ] || [ -z "${3}" ]; then echo "Move a pcap file with its index file and timeline links to a new storage" echo "Usage: $0 <pcap path> <new storage path> <new timeline path>" echo "Example: $0 /storage/1.pcap /external-storage /external-storage/timeline" exit -1 fi function check_file { if [ ! -f $1 ]; then echo "$1 not found!" exit -1 fi } PCAP_PATH=$1 NEW_STORAGE_PATH=$2 NEW_TIMELINE_PATH=$3 check_file $PCAP_PATH check_file $PCAP_PATH.idx check_file $PCAP_PATH.timeline check_file $PCAP_PATH.idx.timeline PCAP_NAME=$(basename $PCAP_PATH) TIMELINE_PCAP_PATH=$(readlink $PCAP_PATH.timeline) check_file $TIMELINE_PCAP_PATH check_file $TIMELINE_PCAP_PATH.idx TIMELINE_REL_PCAP_PATH=$(echo $TIMELINE_PCAP_PATH | rev | cut -d '/' -f-6 | rev) TIMELINE_REL_PATH=$(dirname $TIMELINE_REL_PCAP_PATH) OLD_TIMELINE_PATH=$(echo $TIMELINE_PCAP_PATH | rev | cut -d '/' -f6- | rev) rm $PCAP_PATH.timeline $PCAP_PATH.idx.timeline $TIMELINE_PCAP_PATH $TIMELINE_PCAP_PATH.idx mkdir -p $NEW_STORAGE_PATH mkdir -p $NEW_TIMELINE_PATH/$TIMELINE_REL_PATH mv $PCAP_PATH $NEW_STORAGE_PATH/$PCAP_NAME mv $PCAP_PATH.idx $NEW_STORAGE_PATH/$PCAP_NAME.idx # Absolute paths #ln -s $NEW_STORAGE_PATH/$PCAP_NAME $NEW_TIMELINE_PATH/$TIMELINE_REL_PCAP_PATH #ln -s $NEW_STORAGE_PATH/$PCAP_NAME.idx $NEW_TIMELINE_PATH/$TIMELINE_REL_PCAP_PATH.idx #ln -s $NEW_TIMELINE_PATH/$TIMELINE_REL_PCAP_PATH $NEW_STORAGE_PATH/$PCAP_NAME.timeline #ln -s $NEW_TIMELINE_PATH/$TIMELINE_REL_PCAP_PATH.idx $NEW_STORAGE_PATH/$PCAP_NAME.idx.timeline # Relative paths ln -sr $NEW_STORAGE_PATH/$PCAP_NAME $NEW_TIMELINE_PATH/$TIMELINE_REL_PCAP_PATH ln -sr $NEW_STORAGE_PATH/$PCAP_NAME.idx $NEW_TIMELINE_PATH/$TIMELINE_REL_PCAP_PATH.idx if [ `realpath --help | grep relative-to | wc -l` -gt 0 ]; then ln -s `realpath --relative-to=$NEW_STORAGE_PATH $NEW_TIMELINE_PATH/$TIMELINE_REL_PATH/`/$PCAP_NAME $NEW_STORAGE_PATH/$PCAP_NAME.timeline ln -s `realpath --relative-to=$NEW_STORAGE_PATH $NEW_TIMELINE_PATH/$TIMELINE_REL_PATH/`/$PCAP_NAME.idx $NEW_STORAGE_PATH/$PCAP_NAME.idx.timeline else RELATIVE=$(perl -MFile::Spec -e "print File::Spec->abs2rel(q($NEW_TIMELINE_PATH/$TIMELINE_REL_PCAP_PATH), q($NEW_STORAGE_PATH))") ln -s $RELATIVE $NEW_STORAGE_PATH/$PCAP_NAME.timeline ln -s $RELATIVE.idx $NEW_STORAGE_PATH/$PCAP_NAME.idx.timeline fi find $OLD_TIMELINE_PATH -type d -empty -delete echo "Files moved to:" ls $NEW_STORAGE_PATH/$PCAP_NAME* ls $NEW_TIMELINE_PATH/$TIMELINE_REL_PCAP_PATH* exit 0