Add s3-backup.sh and kindle_filler
This commit is contained in:
@@ -0,0 +1,158 @@
|
||||
#!/bin/bash
|
||||
# Kindle Disk Filler Utility for Linux/macOS
|
||||
# Author: iiroak (https://github.com/iiroak)
|
||||
# This tool fills the disk to prevent automatic updates on tablets
|
||||
# that have not been registered. Useful for jailbreak preparation.
|
||||
|
||||
set -e
|
||||
|
||||
echo ""
|
||||
echo " +=============================================================+"
|
||||
echo " | Kindle Disk Filler Utility v2.0 |"
|
||||
echo " +=============================================================+"
|
||||
echo " | Fills disk to prevent auto-updates on unregistered |"
|
||||
echo " | tablets. Useful for jailbreak preparation. |"
|
||||
echo " +=============================================================+"
|
||||
echo ""
|
||||
|
||||
dir="fill_disk"
|
||||
mkdir -p "$dir"
|
||||
|
||||
find_next_free_index() {
|
||||
local index=0
|
||||
while true; do
|
||||
if [ ! -f "$dir/file_$index" ]; then
|
||||
echo "$index"
|
||||
return
|
||||
fi
|
||||
index=$((index + 1))
|
||||
done
|
||||
}
|
||||
|
||||
get_free_mb() {
|
||||
df -Pm $dir | awk 'NR==2 {print $4}'
|
||||
}
|
||||
|
||||
create_file () {
|
||||
local size=$1 path=$2
|
||||
|
||||
if command -v fallocate >/dev/null 2>&1; then
|
||||
fallocate -l "$size" "$path" && return
|
||||
fi
|
||||
if command -v mkfile >/dev/null 2>&1; then
|
||||
mkfile "$size" "$path" && return
|
||||
fi
|
||||
|
||||
dd if=/dev/zero of="$path" bs="$size" count=1 status=none
|
||||
}
|
||||
|
||||
render_progress() {
|
||||
local percent=$1
|
||||
local status=$2
|
||||
local detail=$3
|
||||
local width=32
|
||||
local filled=$(( percent * width / 100 ))
|
||||
local empty=$(( width - filled ))
|
||||
local bar empty_bar
|
||||
|
||||
bar=$(printf '%*s' "$filled" '' | tr ' ' '=')
|
||||
empty_bar=$(printf '%*s' "$empty" '' | tr ' ' '-')
|
||||
|
||||
printf '\r\033[2K [%s%s] %3d%% %s%s' "$bar" "$empty_bar" "$percent" "$status" "$detail"
|
||||
}
|
||||
|
||||
echo "How much free space (in MB) do you want to leave on disk?"
|
||||
echo "It is highly recommended to leave only 20-50 MB (no more) to prevent updates."
|
||||
echo ""
|
||||
echo " [1] 20 MB (default)"
|
||||
echo " [2] 50 MB"
|
||||
echo " [3] 100 MB"
|
||||
echo " [4] Custom value"
|
||||
echo ""
|
||||
read -p " Enter your choice (1-4) [1]: " choice
|
||||
|
||||
case "$choice" in
|
||||
2) minFreeMB=50 ;;
|
||||
3) minFreeMB=100 ;;
|
||||
4)
|
||||
read -p " Enter the minimum free space in MB (e.g., 30): " custom
|
||||
if [[ "$custom" =~ ^[0-9]+$ ]] && [ "$custom" -gt 0 ]; then
|
||||
minFreeMB=$custom
|
||||
else
|
||||
echo "Invalid input. Using default (20 MB)."
|
||||
minFreeMB=20
|
||||
fi
|
||||
;;
|
||||
*) minFreeMB=20 ;;
|
||||
esac
|
||||
|
||||
echo ""
|
||||
echo "[>] Starting disk fill process..."
|
||||
echo ""
|
||||
|
||||
i=$(find_next_free_index)
|
||||
totalFreeMB=$(get_free_mb)
|
||||
targetFillMB=$((totalFreeMB - minFreeMB))
|
||||
|
||||
if [ "$targetFillMB" -le 0 ]; then
|
||||
echo "[!] The requested free space is greater than or equal to the current free space. Nothing to do."
|
||||
echo ""
|
||||
read -p "Press Enter to exit..." _
|
||||
exit 0
|
||||
fi
|
||||
|
||||
while true; do
|
||||
freeMB=$(get_free_mb)
|
||||
fillableMB=$((freeMB - minFreeMB))
|
||||
|
||||
if [ "$fillableMB" -le 0 ]; then
|
||||
break
|
||||
fi
|
||||
|
||||
if [ "$fillableMB" -ge 1024 ]; then
|
||||
fileSize=1G
|
||||
elif [ "$fillableMB" -ge 100 ]; then
|
||||
fileSize=100M
|
||||
elif [ "$fillableMB" -ge 10 ]; then
|
||||
fileSize=10M
|
||||
else
|
||||
fileSize="${fillableMB}M"
|
||||
fi
|
||||
|
||||
filePath="$dir/file_$i"
|
||||
|
||||
usedMB=$((totalFreeMB - freeMB))
|
||||
percent=$((usedMB * 100 / targetFillMB))
|
||||
[ $percent -gt 100 ] && percent=100
|
||||
[ $percent -lt 0 ] && percent=0
|
||||
|
||||
render_progress "$percent" "Creating: " "file_$i ($fileSize)"
|
||||
|
||||
create_file "$fileSize" "$filePath"
|
||||
|
||||
if [ ! -f "$filePath" ]; then
|
||||
break
|
||||
fi
|
||||
|
||||
i=$(find_next_free_index)
|
||||
freeMB=$(get_free_mb)
|
||||
|
||||
usedMB=$((totalFreeMB - freeMB))
|
||||
percent=$((usedMB * 100 / targetFillMB))
|
||||
[ $percent -gt 100 ] && percent=100
|
||||
[ $percent -lt 0 ] && percent=0
|
||||
|
||||
remainingLabel="${freeMB} MB"
|
||||
[ $freeMB -ge 1024 ] && remainingLabel="$(awk "BEGIN {printf \"%.1f\", $freeMB/1024}") GB"
|
||||
|
||||
render_progress "$percent" "Done: " "file_$((i-1)) | Free: $remainingLabel"
|
||||
done
|
||||
|
||||
printf '\n'
|
||||
echo " +---------------------------------------------------------+"
|
||||
echo " | Disk fill complete! |"
|
||||
echo " | Files created: $i"
|
||||
echo " | Target directory: $dir"
|
||||
echo " +---------------------------------------------------------+"
|
||||
echo ""
|
||||
read -p "Press Enter to exit..." _
|
||||
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
DATETIME=`date +%y%m%d-%H_%M_%S`
|
||||
SRC=$1
|
||||
DST=$2
|
||||
GIVENNAME=$3
|
||||
showhelp(){
|
||||
echo "\n\n############################################"
|
||||
echo "# bkupscript.sh #"
|
||||
echo "############################################"
|
||||
echo "\nThis script will backup files/folders into a single compressed file and will store it in the current folder."
|
||||
echo "In order to work, this script needs the following three parameters in the listed order: "
|
||||
echo "\t- The full path for the folder or file you want to backup."
|
||||
echo "\t- The name of the Space where you want to store the backup at (not the url, just the name)."
|
||||
echo "\t- The name for the backup file (timestamp will be added to the beginning of the filename)\n"
|
||||
echo "Example: sh bkupscript.sh ./testdir testSpace backupdata\n"
|
||||
}
|
||||
tarandzip(){
|
||||
echo "\n##### Gathering files #####\n"
|
||||
if tar -czvf $GIVENNAME-$DATETIME.tar.gz $SRC; then
|
||||
echo "\n##### Done gathering files #####\n"
|
||||
return 0
|
||||
else
|
||||
echo "\n##### Failed to gather files #####\n"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
movetoSpace(){
|
||||
echo "\n##### MOVING TO SPACE #####\n"
|
||||
if s3cmd put $GIVENNAME-$DATETIME.tar.gz s3://$DST; then
|
||||
echo "\n##### Done moving files to s3://"$DST" #####\n"
|
||||
return 0
|
||||
else
|
||||
echo "\n##### Failed to move files to the Space #####\n"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
if [ ! -z "$GIVENNAME" ]; then
|
||||
if tarandzip; then
|
||||
movetoSpace
|
||||
else
|
||||
showhelp
|
||||
fi
|
||||
else
|
||||
showhelp
|
||||
fi
|
||||
Reference in New Issue
Block a user