mirror of https://github.com/tteck/Proxmox
parent
f750bb6159
commit
c360a680f8
1 changed files with 70 additions and 0 deletions
@ -0,0 +1,70 @@ |
|||||||
|
#!/bin/bash |
||||||
|
function header_info { |
||||||
|
cat <<"EOF" |
||||||
|
________ __ _ ________ |
||||||
|
/ ____/ /__ ____ _____ / / | |/ / ____/ |
||||||
|
/ / / / _ \/ __ `/ __ \ / / | / / |
||||||
|
/ /___/ / __/ /_/ / / / / / /___/ / /___ |
||||||
|
\____/_/\___/\__,_/_/ /_/ /_____/_/|_\____/ |
||||||
|
|
||||||
|
EOF |
||||||
|
} |
||||||
|
set -e |
||||||
|
YW=$(echo "\033[33m") |
||||||
|
BL=$(echo "\033[36m") |
||||||
|
RD=$(echo "\033[01;31m") |
||||||
|
CM='\xE2\x9C\x94\033' |
||||||
|
GN=$(echo "\033[1;92m") |
||||||
|
CL=$(echo "\033[m") |
||||||
|
clear |
||||||
|
header_info |
||||||
|
while true; do |
||||||
|
read -p "This Will Clean logs, cache and update apt lists on all LXC Containers. Proceed(y/n)?" yn |
||||||
|
case $yn in |
||||||
|
[Yy]*) break ;; |
||||||
|
[Nn]*) exit ;; |
||||||
|
*) echo "Please answer yes or no." ;; |
||||||
|
esac |
||||||
|
done |
||||||
|
clear |
||||||
|
containers=$(pct list | tail -n +2 | cut -f1 -d' ') |
||||||
|
|
||||||
|
function clean_container() { |
||||||
|
container=$1 |
||||||
|
clear |
||||||
|
header_info |
||||||
|
echo -e "${BL}[Info]${GN} Cleaning${BL} $container${CL} \n" |
||||||
|
pct exec $container -- bash -c "apt-get -y autoremove && apt-get -y autoclean && rm -rf /var/{cache,log}/* /var/lib/apt/lists/* && apt-get update" |
||||||
|
} |
||||||
|
read -p "Skip stopped containers? " -n 1 -r |
||||||
|
echo |
||||||
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then |
||||||
|
skip=no |
||||||
|
else |
||||||
|
skip=yes |
||||||
|
fi |
||||||
|
|
||||||
|
for container in $containers; do |
||||||
|
status=$(pct status $container) |
||||||
|
if [ "$skip" == "no" ]; then |
||||||
|
if [ "$status" == "status: stopped" ]; then |
||||||
|
echo -e "${BL}[Info]${GN} Starting${BL} $container ${CL} \n" |
||||||
|
pct start $container |
||||||
|
echo -e "${BL}[Info]${GN} Waiting For${BL} $container${CL}${GN} To Start ${CL} \n" |
||||||
|
sleep 5 |
||||||
|
clean_container $container |
||||||
|
echo -e "${BL}[Info]${GN} Shutting down${BL} $container ${CL} \n" |
||||||
|
pct shutdown $container & |
||||||
|
elif [ "$status" == "status: running" ]; then |
||||||
|
clean_container $container |
||||||
|
fi |
||||||
|
fi |
||||||
|
if [ "$skip" == "yes" ]; then |
||||||
|
if [ "$status" == "status: running" ]; then |
||||||
|
clean_container $container |
||||||
|
fi |
||||||
|
fi |
||||||
|
done |
||||||
|
wait |
||||||
|
|
||||||
|
echo -e "${GN} Finished, All Containers Cleaned. ${CL} \n" |
Loading…
Reference in new issue