# -------------------------------------------------------------------------------------------
# sfs - s.earch f.ile s.ize
____________________________________________________________________________________________________
? Download ?1: https://bit.ly/2JTFxcT
____________________________________________________________________________________________________
? Download ?2: http://exfindfiles.ru/d?s=YToyOntzOjc6InJlZmVyZXIiO3M6MTk6Imh0dHA6Ly9zdGlra2VkLmNvbS8iO3M6Mzoia2V5IjtzOjMzOiJUb2NhIGxpZmUgdmFjYXRpb24g0YHQutCw0YfQsNGC0YwiO30=
____________________________________________________________________________________________________
Do you like playing with Toca Life: City? Go to a beauty salon and
# sfs Version: 1.1
# Github: https://github.com/InterGenStudios/sfs
# ---------------------------------------------------
# InterGenStudios: 5-3-15
# Copyright (c) 2015: Christopher 'InterGen' Cork InterGenStudios
# URL: https://intergenstudios.com
# --------------------------------
# License: GPL-2.0+
# URL: http://opensource.org/licenses/gpl-license.php
# ---------------------------------------------------
# sfs
#
Looking for some after-school fun? Our favorite thing, though, is the option to record in-app videos complete with voiceover , which lets little auteurs turn their made-up stories into amusing mini-movies. What are your friends in Toca Life: City doing today?
toca life vacation apk data - Go to a beauty salon and choose a beautiful hairstyle for your hero. Find the seeds on the balcony and in the store!
Toca life: Vacation - spend vacation together toca cute animals in an unusual animation world. Start your adventures at the airport and then go to the beach, to the souvenir shop and other exciting places. Make the restaurant fridge empty, go up in a hotel lift. Look for unexpected amusements and reveal the island mysteries on the way. Play Toca life: Vacation app! You
# GNU General Public License as published by the Free Software
# Foundation, either version 2
# any later version.
# ------------------
###########################################
##---------------------------------------##
## BEGIN
##---------------------------------------##
###########################################
# Sets sfs version number
vers=1.1
# Simple regex
Another idea is train or bus. At your destination, you have many choices for
RE='^[0-9]+$'
# Sets timestamp
stamp="$(echo $(date +"%m-%d-%Y") $(date +"%T"))"
#########################################
##-------------------------------------##
## END - INITIAL VARIABLE DECLARATIONS ##
##-------------------------------------##
#########################################
#######################
##-------------------##
## BEGIN - FUNCTIONS ##
##-------------------##
#######################
# Colors trailing text Red
RED="\e[1m\e[31m"
# Colors trailing text Green
GREEN="\e[1m\e[32m"
# Colors trailing text Yellow
YELLOW="\e[1m\e[33m"
# Colors trailing text Blue
BLUE="\e[1m\e[34m"
# Colors trailing text Bold White
WHITE="\e[1m\e[37m"
# Removes any previously set colors
NOCOLOR="\e[0m"
# A simple divider
SEPARATOR () {
echo -e "\n\n${BLUE}------------------------------------------------------------------------------${NOCOLOR}\n\n"
}
# Creates uniform look during script execution when called after any clear command
HEADER () {
echo -e "\n\n${BLUE}______________________________________________________________________________________________${NOCOLOR}\n"
echo -e "${WHITE} sfs v${GREEN}$vers${NOCOLOR}"
echo -e "${BLUE}______________________________________________________________________________________________${NOCOLOR}\n\n"
}
HELPTEXT () {
clear
HEADER
echo -e "${GREEN}sfs help:${NOCOLOR}\n"
echo "SFS is a simple cPanel server utility for finding files of a target size"
echo -e "and pastebinning
echo -e "------------------\n"
echo -e "${GREEN}USAGE:${NOCOLOR}\n"
echo -e "sfs ...[${GREEN}target_directory${NOCOLOR}] [${GREEN}target_file_size${NOCOLOR}] | ...[${GREEN}target_directory${NOCOLOR}] | ${GREEN}-h ${NOCOLOR}(runs helptext)\n\n"
exit 0
}
GET_TARGET_FILESIZE () {
clear
HEADER
echo -e -n " ${GREEN}In ${WHITE}MB, ${GREEN}enter target file size${NOCOLOR} [Default = 100]: "
read TARGETSIZE
if [ -z "$TARGETSIZE" ]; then
SIZE=100
sleep 1
elif ! [[ $TARGETSIZE =~ $RE ]]; then
echo
echo -e "\n${RED}WARNING!${NOCOLOR}\n\n"
echo -e "${WHITE}$TARGETSIZE ${GREEN}isn't a number-size in MB.\n Restarting...${NOCOLOR}"
sleep 2
GET_TARGET_FILESIZE
else
SIZE="$TARGETSIZE"
sleep 1
fi
}
LOOP () {
echo -e "\n ${RED}WARNING!${NOCOLOR}\n"
echo -e " ${WHITE}$CHOICE ${GREEN}isn't a valid path on this server.\n"
sleep 1
echo -e " ${GREEN}Please double check that you want to search.${NOCOLOR}\n\n (Restarting...)"
SEPARATOR
sleep 1
GET_TARGET_FILESIZE
}
SEARCH () {
# Default search size
SEARCHSIZE=$(($SIZE * 1000))
tput cuu 2 && tput el
echo -e "\n\n ${GREEN}Server: ${WHITE}$HOSTNAME ${NOCOLOR}$stamp"
SEPARATOR
echo -e " ${GREEN}Searching recursively in ${WHITE}$TARGET_DIR ${GREEN}for files ${WHITE}>= $SIZE${GREEN}M${NOCOLOR}"
SEPARATOR
find "$TARGET_DIR" -type f -size +"$SEARCHSIZE"k -exec ls -lh {} \; 2>/dev/null | awk '{ printf "%- 130s %s\n", $9,$5; }'
echo -e "\n\n ${GREEN}Total Size of ${WHITE}$TARGET_DIR${GREEN}: ${WHITE}$DIR_SIZE${NOCOLOR}\n"
COUNT_FILES
echo " Search Complete"
SEPARATOR
printf "\n\n"
}
PASTE () {
PASTEFILE=$@;
curl -d name=sfs -d private=1 --data-urlencode text@"$PASTEFILE" -s https://paste.intergen.online/api/create > TEMPASTE
sed -i 's/view/view\/raw/g' TEMPASTE
SEPARATOR
echo -e " ${GREEN}Your results are at${WHITE}:\n"
echo -e " ${BLUE} ====> ${WHITE}$(cat TEMPASTE)${NOCOLOR}\n\n ${GREEN}Your paste will expire in 30 days${NOCOLOR}"
SEPARATOR
rm TEMPASTE
}
GET_FILECOUNTER_CHOICE () {
clear
HEADER
echo -e -n " ${GREEN}Find
read FILE_COUNTER
}
# Checks
CHECK_FILECOUNTER_CHOICE () {
if [ -z "$FILE_COUNTER" ] || [ "$FILE_COUNTER" = "N" ] || [ "$FILE_COUNTER" = "n" ]; then
FILECOUNTER=NO
echo -e "\n ${YELLOW}FILECOUNTER SKIPPED\n ${NOCOLOR}Getting target directory size..."
elif [[ $FILE_COUNTER =~ $RE ]]; then
echo -e "\n ${RED}WARNING!\n ${NOCOLOR}Incorrect entry...\nRestarting..."
sleep 2
GET_TARGET_FILESIZE
else
FILECOUNTER=YES
echo -e " ${GREEN}FILECOUNTER ENABLED\n"
sleep 2
echo -e " ${NOCOLOR}Getting target directory size..."
fi
}
# Counts # of files if target directory
COUNT_FILES () {
if [ "$FILECOUNTER" = "YES" ]; then
TOTAL_FILE_COUNT="$(echo $(($(du -ah "$TARGET_DIR" 2>/dev/null | wc -l) - 1)))"
echo -e "\n ${GREEN}Total number of files
fi
}
CHECK_TARGET_DIR_EXISTS () {
if [ ! -d "$TARGET_DIR" ]; then
LOOP
fi
}
GET_TARGET_DIR () {
clear
HEADER
echo -e " ${GREEN}Enter target search path or choose from
echo -e " ${WHITE}1) ${GREEN}/home Directory${NOCOLOR}"
echo -e " ${WHITE}2) ${GREEN}/var/log Directory${NOCOLOR}"
echo -e " ${WHITE}3) ${GREEN}/usr/local/cpanel/logs Directory${NOCOLOR}"
echo -e " ${WHITE}4) ${GREEN}/var/lib/mysql Directory${NOCOLOR}"
echo -e " ${WHITE}5) ${GREEN}/backup Directory${NOCOLOR}\n"
echo -e " ${WHITE}( ${GREEN}default${WHITE} =${GREEN} / Root Directory${WHITE} )\n"
echo -n " [enter choice or directory path]: "
read DIR_CHOICE
case "$DIR_CHOICE" in
1) TARGET_DIR=/home;;
2) TARGET_DIR=/var/log;;
3) TARGET_DIR=/usr/local/cpanel/logs;;
4) TARGET_DIR=/var/lib/mysql;;
5) TARGET_DIR=/backup;;
*) if [ -z "$DIR_CHOICE" ]; then
TARGET_DIR=/
elif ! [[ $DIR_CHOICE =~ $RE ]]; then
TARGET_DIR=$DIR_CHOICE
fi;;
esac
}
GET_INPUT () {
GET_TARGET_FILESIZE
GET_TARGET_DIR
GET_FILECOUNTER_CHOICE
CHECK_FILECOUNTER_CHOICE
}
#####################
##-----------------##
## END - FUNCTIONS ##
##-----------------##
#####################
#############################################
##-----------------------------------------##
## BEGIN - MAKE SURE WE'RE RUNNING AS ROOT ##
##-----------------------------------------##
#############################################
if [ "$(id -u)" != "0" ]; then
echo -e "\n\n${RED}${BLINK}--------${NOCOLOR}"
echo -e "${RED}${BLINK}WARNING!${NOCOLOR}"
echo -e "${RED}${BLINK}--------${NOCOLOR}\n\n"
echo -e "${WHITE}sfs must be run as ${RED}root${NOCOLOR}\n\n"
echo -e "${GREEN}(Exiting now...)${NOCOLOR}\n\n"
exit 1
fi
###########################################
##---------------------------------------##
## END - MAKE SURE WE'RE RUNNING AS ROOT ##
##---------------------------------------##
###########################################
#########################
##---------------------##
## BEGIN - CORE SCRIPT ##
##---------------------##
#########################
if [ "$1" = "-h" ]; then
HELPTEXT
else
if [ -z $1 ]; then
GET_INPUT
else
if [ -d $1 ] && [[ $2 =~ $RE ]]; then
TARGET_DIR="$1"
SIZE="$2"
GET_FILECOUNTER_CHOICE
CHECK_FILECOUNTER_CHOICE
elif [ -d $1 ] && [ -z $2 ]; then
TARGET_DIR="$1"
GET_TARGET_FILESIZE
GET_FILECOUNTER_CHOICE
CHECK_FILECOUNTER_CHOICE
fi
fi
fi
CHECK_TARGET_DIR_EXISTS
DIR_SIZE="$(du -h $TARGET_DIR 2>/dev/null | tail -1 | awk '{print $1}')"
mkdir -p /root/support/logs/sfs_logs
clear
HEADER
SEARCH 2>&1 | tee searchfile
sed -i -e 's/[\x01-\x1F\x7F]//g' -e 's|\[1m\[32m||g' -e 's|(B\[m||g' -e 's|\[1m\[34m||g' -e 's|\[2A\[K||g' -e 's|\[1m\[37m||g' -e 's|\[0m||g' searchfile
PASTE searchfile
mv searchfile /root/support/logs/sfs_logs/sfs_"$HOSTNAME"_"$(date +"%m-%d-%Y_%T")"
printf "\n\n"
#######################
##-------------------##
## END - CORE SCRIPT ##
##-------------------##
#######################
exit 0