feat: Replace rsync by mv
which is much faster when working on the same disk
This commit is contained in:
parent
8e6fe7f877
commit
623f8c56bf
|
|
@ -93,6 +93,14 @@ search_ghosts() {
|
|||
)
|
||||
echo "${orphan_homes[@]}"
|
||||
}
|
||||
|
||||
check_user_has_home() {
|
||||
local login="$1"
|
||||
local home_folder="/mnt/home.ipr"
|
||||
if [ -d "${home_folder}/${login}" ]; then
|
||||
echo "$login"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
run_remote() {
|
||||
|
|
@ -137,6 +145,24 @@ sync_folder() {
|
|||
}
|
||||
|
||||
|
||||
move_folder() {
|
||||
# source folder
|
||||
local src="$1"
|
||||
# destination folder
|
||||
local dest="$2"
|
||||
# supervisor login
|
||||
local supervisor="$3"
|
||||
|
||||
supervisor_group=$(id -gn $supervisor)
|
||||
# Change ownership
|
||||
chown -R $supervisor:$supervisor_group "$src"
|
||||
# Create dir
|
||||
mkdir -p "$dest"
|
||||
# Move it
|
||||
mv "$src" "$dest"
|
||||
}
|
||||
|
||||
|
||||
remove_folder() {
|
||||
local folder="$1"
|
||||
echo "Removing \""$1"\"..."
|
||||
|
|
@ -167,12 +193,24 @@ chmod 600 "$ldap_file"
|
|||
echo
|
||||
echo "Please select an orphan folder in the list: "
|
||||
echo
|
||||
PS3="Enter an item number: "
|
||||
PS3="Enter an item number (-1 for manual entry): "
|
||||
while true; do
|
||||
select old_user in $(run_remote "home.ipr" "search_ghosts"); do
|
||||
if [[ -n "$old_user" ]]; then
|
||||
echo "Selection: $old_user"
|
||||
break 2
|
||||
break 2
|
||||
elif [[ $REPLY -eq -1 ]]; then
|
||||
while true; do
|
||||
read -p "MANUAL ENTRY: " ANSWER
|
||||
old_user=$(run_remote "home.ipr" "check_user_has_home" "$ANSWER")
|
||||
if [[ -n "$old_user" ]]; then
|
||||
echo "Selection: $old_user"
|
||||
break 3
|
||||
else
|
||||
echo "Invalid choice"
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo "Invalid choice"
|
||||
fi
|
||||
|
|
@ -192,8 +230,8 @@ work_dest=/mnt/work/$supervisor/old_users/
|
|||
home_dest=/mnt/home.ipr/$supervisor/old_users/
|
||||
|
||||
# Ask if we remove folders after sync
|
||||
ask_yes_no "Remove \"$work_src\" and \"$home_src\" after synchronization ?" y
|
||||
remove_after=$?
|
||||
#ask_yes_no "Remove \"$work_src\" and \"$home_src\" after synchronization ?" y
|
||||
#remove_after=$?
|
||||
|
||||
# Should we warn the supervisor
|
||||
ask_yes_no "Email confirmation to supervisor ?" y
|
||||
|
|
@ -207,11 +245,13 @@ fi
|
|||
# Print a summary
|
||||
echo "/!\ SUMMARY:"
|
||||
echo "------------"
|
||||
echo "-> \"$work_src\" will be synchronized in \"$work_dest\""
|
||||
echo "-> \"$home_src\" will be synchronized in \"$home_dest\""
|
||||
echo -n "-> \"$work_src\" and \"$home_src\" will be "
|
||||
[[ "$remove_after" == 0 ]] && echo -n "REMOVED from " || echo -n "KEPT on "
|
||||
echo "the file system."
|
||||
#echo "-> \"$work_src\" will be synchronized in \"$work_dest\""
|
||||
#echo "-> \"$home_src\" will be synchronized in \"$home_dest\""
|
||||
echo "-> \"$work_src\" will be moved to \"$work_dest\""
|
||||
echo "-> \"$home_src\" will be moved to \"$home_dest\""
|
||||
#echo -n "-> \"$work_src\" and \"$home_src\" will be "
|
||||
#[[ "$remove_after" == 0 ]] && echo -n "REMOVED from " || echo -n "KEPT on "
|
||||
#echo "the file system."
|
||||
#[[ "$delete_user" == 0 ]] && echo "-> User "$folder" WILL BE DELETED."
|
||||
[[ "$send_email" == 0 ]] && echo "-> A confirmation will be sent to "$email"."
|
||||
echo ""
|
||||
|
|
@ -234,14 +274,16 @@ EOF
|
|||
|
||||
|
||||
if [ "$do_it" == 0 ]; then
|
||||
run_remote --sudo "home.ipr" "sync_folder" "$home_src" "$home_dest" "$supervisor"
|
||||
run_remote --sudo "work.ipr" "sync_folder" "$work_src" "$work_dest" "$supervisor"
|
||||
if [ "$remove_after" == 0 ]; then
|
||||
ask_yes_no "Please CONFIRM that you REALLY want to delete "$work_src" and "$home_src" ?" y
|
||||
confirm_removal=$?
|
||||
[[ "$confirm_removal" == 0 ]] && run_remote --sudo "home.ipr" "remove_folder" "$home_src"
|
||||
[[ "$confirm_removal" == 0 ]] && run_remote --sudo "work.ipr" "remove_folder" "$work_src"
|
||||
fi
|
||||
#run_remote --sudo "home.ipr" "sync_folder" "$home_src" "$home_dest" "$supervisor"
|
||||
#run_remote --sudo "work.ipr" "sync_folder" "$work_src" "$work_dest" "$supervisor"
|
||||
run_remote --sudo "home.ipr" "move_folder" "$home_src" "$home_dest" "$supervisor"
|
||||
run_remote --sudo "work.ipr" "move_folder" "$work_src" "$work_dest" "$supervisor"
|
||||
#if [ "$remove_after" == 0 ]; then
|
||||
# ask_yes_no "Please CONFIRM that you REALLY want to delete "$work_src" and "$home_src" ?" y
|
||||
# confirm_removal=$?
|
||||
# [[ "$confirm_removal" == 0 ]] && run_remote --sudo "home.ipr" "remove_folder" "$home_src"
|
||||
# [[ "$confirm_removal" == 0 ]] && run_remote --sudo "work.ipr" "remove_folder" "$work_src"
|
||||
#fi
|
||||
[[ "$send_email" == 0 ]] && run_remote "alambix" "mail_it" "$email" "$message"
|
||||
update_db "$old_user"
|
||||
else
|
||||
|
|
|
|||
Loading…
Reference in New Issue