Take care, not to delete directory where this script is running. Minor changes at script output
This commit is contained in:
parent
16d09fb42a
commit
9159682bb6
BIN
.change_network_gateway.sh.swp
Normal file
BIN
.change_network_gateway.sh.swp
Normal file
Binary file not shown.
@ -1,11 +1,32 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# =============
|
||||||
|
# --- Some Definitions
|
||||||
|
# =============
|
||||||
|
|
||||||
base_dir=/root/Office_Networks
|
base_dir=/root/Office_Networks
|
||||||
chown -R root:root $base_dir
|
chown -R root:root $base_dir
|
||||||
|
|
||||||
logfile=$(mktemp)
|
logfile=$(mktemp)
|
||||||
|
|
||||||
|
|
||||||
|
# ---
|
||||||
|
# --- DON'T MAKE CHANGES AFTER THIS LINE
|
||||||
|
# ---
|
||||||
|
|
||||||
|
|
||||||
|
# =============
|
||||||
|
# --- Some functions
|
||||||
|
# =============
|
||||||
|
|
||||||
|
# - Is this script running on terminal ?
|
||||||
|
# -
|
||||||
|
if [[ -t 1 ]] ; then
|
||||||
|
terminal=true
|
||||||
|
else
|
||||||
|
terminal=false
|
||||||
|
fi
|
||||||
|
|
||||||
function usage() {
|
function usage() {
|
||||||
if [ -n "$1" ];then
|
if [ -n "$1" ];then
|
||||||
echo -e "\nError: $1"
|
echo -e "\nError: $1"
|
||||||
@ -44,7 +65,7 @@ Usage: `basename $0` <network-name>
|
|||||||
|
|
||||||
Notice:
|
Notice:
|
||||||
|
|
||||||
!! To change the network, you have to chroot into /ro !!
|
!! If you are on a readonly system, chroot into /ro !!
|
||||||
|
|
||||||
remountrw
|
remountrw
|
||||||
rebind on
|
rebind on
|
||||||
@ -95,15 +116,27 @@ info (){
|
|||||||
|
|
||||||
|
|
||||||
echo_OK() {
|
echo_OK() {
|
||||||
|
if $terminal ; then
|
||||||
echo -en "\\033[45G[ \\033[1;32mOK\\033[0;39m ]\n"
|
echo -en "\\033[45G[ \\033[1;32mOK\\033[0;39m ]\n"
|
||||||
|
else
|
||||||
|
echo " .. [ OK ]"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
echo_FAILED() {
|
echo_FAILED() {
|
||||||
|
if $terminal ; then
|
||||||
echo -en "\\033[45G[ \\033[1;31mFAIL\\033[0;39m ]\n"
|
echo -en "\\033[45G[ \\033[1;31mFAIL\\033[0;39m ]\n"
|
||||||
|
else
|
||||||
|
echo " .. [ FAIL ]"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
echo_SKIPPED() {
|
echo_SKIPPED() {
|
||||||
echo -en "\\033[45G[ \\033[37mSkipped\\033[0;39m ]\n"
|
if $terminal ; then
|
||||||
|
echo -en "\033[45G[ \033[37mSKIP\033[m ]\n"
|
||||||
|
else
|
||||||
|
echo " .. [ SKIP ]"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
[ $# -ne "1" ] && usage "wrong number of arguments"
|
[ $# -ne "1" ] && usage "wrong number of arguments"
|
||||||
@ -377,20 +410,50 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# - /usr/local/src directory
|
# - /root/bin directory
|
||||||
# -
|
# -
|
||||||
|
src_dir=${base_dir}/${network}/bin
|
||||||
|
dst_dir=$(realpath /root/bin)
|
||||||
echo -en "\t/root/bin directory"
|
echo -en "\t/root/bin directory"
|
||||||
if [[ -d "${base_dir}/${network}/bin" ]]; then
|
omitted=false
|
||||||
if [[ ! -d "/root/bin" ]]; then
|
msg=""
|
||||||
mkdir /root/bin > $logfile 2>&1
|
if [[ -d "$src_dir" ]]; then
|
||||||
|
if [[ ! -d "$dst_dir" ]]; then
|
||||||
|
mkdir $dst_dir > $logfile 2>&1
|
||||||
fi
|
fi
|
||||||
cp -a ${base_dir}/${network}/bin/* /root/bin/ > $logfile 2>&1
|
|
||||||
|
# - Delete all existing files/directories of $dst_dir, but
|
||||||
|
# - ommit directory, where this script is running..
|
||||||
|
# -
|
||||||
|
while IFS='' read -r -d '' file ; do
|
||||||
|
if [[ "$(basename $file)" = "$(basename $(realpath $(dirname $0)))" ]]; then
|
||||||
|
omitted=true
|
||||||
|
msg="Existing Directory '$(basename $file)' was not deleted, because this script is running there!"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
rm -r $file
|
||||||
|
done < <(find "$dst_dir" -mindepth 1 -maxdepth 1 -print0)
|
||||||
|
while IFS='' read -r -d '' file ; do
|
||||||
|
if [[ "$(realpath $(dirname $0))" = "${dst_dir}/$(basename $file)" ]] ; then
|
||||||
|
omitted=true
|
||||||
|
if [[ -n "$msg" ]];then
|
||||||
|
msg="$msg\n\t New Directory '$(basename $file)' was also not copied."
|
||||||
|
continue
|
||||||
|
else
|
||||||
|
msg="Directory '$(basename $file)' was omitted, because this script is running there!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
cp -a ${file} ${dst_dir}/ > $logfile 2>&1
|
||||||
|
done < <(find "$src_dir" -mindepth 1 -maxdepth 1 -print0)
|
||||||
if ! $_rval ; then
|
if ! $_rval ; then
|
||||||
echo_FAILED
|
echo_FAILED
|
||||||
error $(cat $logfile)
|
error $(cat $logfile)
|
||||||
else
|
else
|
||||||
echo_OK
|
echo_OK
|
||||||
fi
|
fi
|
||||||
|
if $omitted ; then
|
||||||
|
info "$msg"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo_SKIPPED
|
echo_SKIPPED
|
||||||
fi
|
fi
|
||||||
@ -683,7 +746,6 @@ echo -en "\tSetting up rc.local.."
|
|||||||
if [ "$network" = "NONE-CKUBU" -o "$network" = "NONE-WF" -o "$network" = "GA-Ersatz" ];then
|
if [ "$network" = "NONE-CKUBU" -o "$network" = "NONE-WF" -o "$network" = "GA-Ersatz" ];then
|
||||||
cp -a ${base_dir}/rc.local.NONE /etc/rc.local > $logfile 2>&1
|
cp -a ${base_dir}/rc.local.NONE /etc/rc.local > $logfile 2>&1
|
||||||
else
|
else
|
||||||
#cp -a ${base_dir}/rc.local /etc/rc.local
|
|
||||||
cp -a ${base_dir}/${network}/rc.local.${network} /etc/rc.local > $logfile 2>&1
|
cp -a ${base_dir}/${network}/rc.local.${network} /etc/rc.local > $logfile 2>&1
|
||||||
fi
|
fi
|
||||||
if [ "$?" != "0" ]; then
|
if [ "$?" != "0" ]; then
|
||||||
@ -693,28 +755,24 @@ else
|
|||||||
echo_OK
|
echo_OK
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if $_add_support_if ; then
|
_error=false
|
||||||
echo -e " After restarting, you can reach that device"
|
|
||||||
echo -e " at ip-address: \\033[1;33m172.16.1.1\\033[0;39m"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$(stat -c %d:%i /)" = "$(stat -c %d:%i /proc/1/root/.)" ]; then
|
if [ "$(stat -c %d:%i /)" = "$(stat -c %d:%i /proc/1/root/.)" ]; then
|
||||||
|
|
||||||
warn "This is NOT a chrooted environment. Maybe thats ok. \n\n\t\033[1;37mIf this is a readonly system, take care, you are chrooted into /ro.\n\tOtherwise changes are not persistent.\033[m"
|
if [[ -d "/ro" ]] ; then
|
||||||
|
error "It seems, this is a readonly system and you are not chrooted.\n\n\t \033[1;37mChanges made by this script are not persistent!!\033[m\n\n\t Change root to directory '/ro' (\033[1;37mchroot /ro /bin/bash\033[m) and\n\t run this script again.\033[m"
|
||||||
|
#info "Change root to directory '/ro' (\033[1;37mchroot /ro /bin/bash\033[m) and run this script again.\033[m"
|
||||||
|
fi
|
||||||
|
|
||||||
|
_error=true
|
||||||
|
|
||||||
#echo ""
|
|
||||||
#echo ""
|
|
||||||
#echo -e " \\033[1;31m Take care, you are chrooted into /ro. Otherwise"
|
|
||||||
#echo -e " changes are not persistent \\033[0;39m !!"
|
|
||||||
#echo ""
|
|
||||||
#echo ""
|
|
||||||
else
|
else
|
||||||
|
|
||||||
info "Programm was running in a chrooted environment.\n\n\t\033[1;37mExit from chroot environment and restart to make changes active..\033[m"
|
info "Programm was running in a chrooted environment.\n\n\t\033[1;37mExit from chroot environment and restart to make changes active..\033[m"
|
||||||
|
|
||||||
#echo ""
|
fi
|
||||||
#echo ""
|
|
||||||
#echo -e " \\033[1;33mExit from chroot environment and restart to make changes active..\\033[0;39m"
|
if $_add_support_if i&& ! $_error ; then
|
||||||
#echo ""
|
info "After restarting, you can reach this machine\n\t at ip-address: \033[1;33m172.16.1.1\033[m"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
Loading…
Reference in New Issue
Block a user