EVOLUTION-MANAGER
Edit File: npcapmove
#!/bin/bash ABSOLUTE_PATH=false function print_help { echo "Move a pcap file with its index file and timeline links to a new storage" echo "" echo "Usage: $0 [-a] <pcap path> <new storage path> <new timeline path>" echo "" echo "Options:" echo "[-a] Produce absolute instead of relative links for the timeline" echo "" echo "Example: $0 /storage/1.pcap /external-storage /external-storage/timeline" exit -1 } if [ -z "${1}" ] || [ -z "${2}" ] || [ -z "${3}" ]; then print_help fi function check_file { if [ ! -f $1 ]; then echo "$1 not found!" exit -1 fi } if [ "${1}" = "-a" ]; then shift 1 if [ -z "${3}" ]; then print_help fi ABSOLUTE_PATH=true 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 if [ "${ABSOLUTE_PATH}" = "true" ]; then # 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 else # 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 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