mirror of
https://github.com/unraid/webgui.git
synced 2026-05-07 04:41:03 -05:00
add mover function to move the shares off a selected array disk onto other array disks
This commit is contained in:
+63
-4
@@ -73,6 +73,34 @@ start() {
|
||||
echo "mover: finished"
|
||||
}
|
||||
|
||||
empty() {
|
||||
if [ -f $PIDFILE ]; then
|
||||
if ps h $(cat $PIDFILE) | grep mover ; then
|
||||
echo "mover: already running"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo $$ >/var/run/mover.pid
|
||||
echo "mover: started"
|
||||
|
||||
shopt -s nullglob
|
||||
|
||||
for SHAREPATH in /mnt/$DISK/* ; do
|
||||
find "$SHAREPATH" -depth 2>/dev/null | /usr/libexec/unraid/move -e $DEBUGGING
|
||||
done
|
||||
|
||||
# output list of files which could not be moved
|
||||
shopt -s dotglob ; FILES=/mnt/$DISK/* ; shopt -u dotglob
|
||||
if [ ${#files[@]} -gt 2 ]; then
|
||||
echo "mover: not moved:"
|
||||
ls -1 --almost-all --recursive /mnt/$DISK
|
||||
fi
|
||||
|
||||
rm -f $PIDFILE
|
||||
echo "mover: finished"
|
||||
}
|
||||
|
||||
killtree() {
|
||||
local pid=$1 child
|
||||
|
||||
@@ -93,9 +121,42 @@ stop() {
|
||||
echo "mover: stopped"
|
||||
}
|
||||
|
||||
# Function to display usage
|
||||
usage() {
|
||||
echo "Usage: $0 start [-e] <disk_name>"
|
||||
echo " $0 stop|status"
|
||||
echo " <disk_name> must match pattern 'disk[0-9]*'"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# validate disk name
|
||||
validate_disk() {
|
||||
if [[ ! "$1" =~ ^disk[0-9]+$ ]]; then
|
||||
echo "Error: <disk_name> must match pattern 'disk[0-9]*'"
|
||||
usage
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$#" -lt 1 ]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case $1 in
|
||||
start)
|
||||
start
|
||||
if [ -z "$2" ]; then
|
||||
start
|
||||
elif [ "$2" == "-e" ]; then
|
||||
if [ -z "$3" ]; then
|
||||
usage
|
||||
else
|
||||
validate_disk "$3"
|
||||
DISK="$3"
|
||||
empty
|
||||
fi
|
||||
else
|
||||
usage
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
@@ -104,8 +165,6 @@ status)
|
||||
[ -f $PIDFILE ]
|
||||
;;
|
||||
*)
|
||||
# Default is "start"
|
||||
# echo "Usage: $0 (start|stop|status)"
|
||||
start
|
||||
usage
|
||||
;;
|
||||
esac
|
||||
|
||||
Reference in New Issue
Block a user