2017-02-03 17:36:16 +00:00
#!/bin/bash
2018-04-26 18:58:19 +00:00
#@version 1.9.1
2018-04-26 11:04:35 +00:00
#@autor 6543@obermui.de
2018-04-26 18:58:19 +00:00
#@date 2018-04-26
2018-04-26 11:04:35 +00:00
#@licence GNUv3
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
#####################################################################################
################## S e t t i n g s ##################################################
#####################################################################################
2018-04-26 18:58:19 +00:00
#get base dir
rootdir = ` echo $0 | rev | cut -d "/" -f 2- | rev` /../../
rootdir = ` readlink -e $rootdir `
#set functions
if [ -p " $rootdir /usr/lib/remaster/ " ] ; then
#source "$rootdir/usr/lib/remaster/" ...
export PATH = " $rootdir /usr/lib/remaster/ " :$PATH
else
echo "ERROR functions not found"
exit 1
fi
#read main setting
if [ -f " $rootdir /etc/remaster/config.cfg " ] ; then
source " $rootdir /etc/remaster/config.cfg "
else
if [ -f " $rootdir /etc/remaster/config.sample.cfg " ] ; then
source " $rootdir /etc/remaster/config.sample.cfg "
else
echo "ERROR config not found"
exit 1
fi
fi
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
#####################################################################################
################## M o d e s ########################################################
#####################################################################################
2017-02-03 17:36:16 +00:00
2018-03-26 12:50:34 +00:00
#remaster.sh renew
2018-03-26 12:47:46 +00:00
function main_renew( ) {
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
[ -f " $log_file " ] || touch " $log_file "
tail -f " $log_file " --pid= " $$ " &
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
chroot_path = "`mktemp -d`"
iso_extr_dir = "`mktemp -d`"
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "Remaster LOG `date '+%Y-%m-%d'`" > " $log_file "
2018-03-26 12:47:46 +00:00
echo "MODE: renew" >> " $log_file "
2018-03-26 12:44:52 +00:00
echo "HOST: `hostname`" >> " $log_file "
echo >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "### S e t t i n g s ###" >> " $log_file "
echo "#CD/DVD" >> " $log_file "
echo " iso_source=\" $iso_source \" " >> " $log_file "
echo " iso_destination=\" $iso_destination \" " >> " $log_file "
echo " iso_lable=\" $iso_lable \" " >> " $log_file "
echo >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "#Filesystem (for pxe)" >> " $log_file "
echo " filesystem_source=\" $filesystem_source \" " >> " $log_file "
echo >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "#Network" >> " $log_file "
echo " proxy_host=\" $proxy_host \" " >> " $log_file "
echo " proxy_port=\" $proxy_port \" " >> " $log_file "
echo " domain=\" $domain \" " >> " $log_file "
echo " nameserver=\" $nameserver \" " >> " $log_file "
echo >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "#remaster_script" >> " $log_file "
echo " distro=\" $distro \" " >> " $log_file "
echo >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo " log_file=\" $log_file \" "
echo " log_mail_aim=\" $log_mail_aim \" "
echo " log_mail_subject=\" $log_mail_subject \" "
echo ""
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "#Sonstiges" >> " $log_file "
echo " tools_list=\" $tools_list \" " >> " $log_file "
echo $'\n' >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "### Enviroment ###"
echo " iso_extr_dir=\" $iso_extr_dir \" " >> " $log_file "
echo " chroot_path=\" $chroot_path \" " >> " $log_file "
2018-03-26 12:52:46 +00:00
#env >> "$log_file"
2018-03-26 12:44:52 +00:00
echo $'\n\n' >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo $'### R U N ... ###\n' >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:48:41 +00:00
#1. Set and Check Enviroment
check_user
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
check_dependency
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
[ " $distro " != "" ] && distro = " _ $distro "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
# 2. Entpacke ISO
iso_extract " $iso_source " " $iso_extr_dir "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
# 3. Entpacken der Dateien des Live-Systems
filesystem_img = "`find " $iso_extr_dir " -name filesystem.squashfs`"
[ -e " $filesystem_img " ] || {
echo " ### ERROR ### Image \" $iso_source \" has no \"filesystem.squashfs\" " >> " $log_file "
on_exit 15 >> " $log_file "
}
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
filesystem_extract " $filesystem_img " " $chroot_path " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
# 4. Vorbereiten für chroot-Umgebung:
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
chroot_initial$distro " $chroot_path " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
# 5. Setzen der Netzwerk-Einstellungen:
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
proxy_enable$distro " $chroot_path " " $proxy_host " " $proxy_port " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
dns_set " $chroot_path " " $domain " " $nameserver " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
# 6. Updaten von Desinfec't:
os_update$distro " $chroot_path " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
# 7. Installation optionaler Tools:
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
tools_add$distro " $chroot_path " " $tools_list " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
#addo ClamAV to conky_info
sed -i 's/# ${color white}ClamAV/ ${color white}ClamAV/g' " $chroot_path /etc/skel/.conkyrc "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
chroot_clean " $chroot_path " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2018-03-26 12:41:51 +00:00
2018-03-26 12:44:52 +00:00
# 8. Manuelle Aktionen - deaktiviert
2018-03-26 12:41:51 +00:00
2018-03-26 12:44:52 +00:00
#echo "Now You Have TIME to do something MANUALY!"
#echo "enter in shell: #> chroot $chroot_path /bin/bash"
#chroot $chroot_path /bin/bash
#echo "Are You Finisch? Then Press [ENTER]"
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
# 9. Umount - Chroot Umgebung auflösen
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
chroot_umount$distro " $chroot_path " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
#Überprüfen ob alles ausgehängt wurde
[ "`chroot_is_mounted " $chroot_path "`" = = "true" ] && {
echo "### ERROR ### Cant Unmount Chroot!" >> " $log_file "
on_exit 21 >> " $log_file "
2017-02-03 17:36:16 +00:00
}
2018-03-26 12:44:52 +00:00
# 10. Packen und Ersetzen der Dateien des Live-Systems
rm " $filesystem_img " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
filesystem_pack " $chroot_path " " $filesystem_img " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
# wenn iso gewünscht
[ " $iso_destination " != "" ] && {
iso_create$distro " $chroot_path " " $iso_extr_dir " " $iso_destination " " $iso_lable " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
}
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
# wenn filesystem gewünscht
[ " $filesystem_source " != "" ] && {
#wen bereits forhanden dann löschen
[ -f " $filesystem_source " ] && rm " $filesystem_source "
cp " $filesystem_img " " $filesystem_source " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
chmod 666 " $filesystem_source "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
}
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
chmod 666 " $iso_destination " " $filesystem_img " >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
workspace_erase " $iso_extr_dir / " " $chroot_path / " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
on_exit 0
}
2017-02-03 17:36:16 +00:00
2018-03-26 12:52:46 +00:00
#remaster.sh update_pxe
function main_update_pxe( ) {
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
[ " $log_file " = = "" ] && log_file = "`mktemp`"
[ -f " $log_file " ] || touch " $log_file "
tail -f " $log_file " --pid= " $$ " &
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
chroot_path = "`mktemp -d`"
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "Remaster LOG `date '+%Y-%m-%d'`" > " $log_file "
2018-03-26 12:52:46 +00:00
echo "MODE: update_pxe" >> " $log_file "
2018-03-26 12:44:52 +00:00
echo "HOST: `hostname`" >> " $log_file "
echo >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "### S e t t i n g s ###" >> " $log_file "
echo "#Filesystem (for pxe)" >> " $log_file "
echo " filesystem_source=\" $filesystem_source \" "
echo >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "#Network" >> " $log_file "
echo " domain=\" $domain \" " >> " $log_file "
echo " nameserver=\" $nameserver \" " >> " $log_file "
echo >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "#remaster_script" >> " $log_file "
echo " distro=\" $distro \" " >> " $log_file "
echo >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo " log_file=\" $log_file \" "
echo " log_mail_aim=\" $log_mail_aim \" "
echo " log_mail_subject=\" $log_mail_subject \" "
echo ""
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "#Sonstiges" >> " $log_file "
echo " tools_list=\" $tools_list \" " >> " $log_file "
echo $'\n' >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "### Enviroment ###"
echo " chroot_path=\" $chroot_path \" " >> " $log_file "
2018-03-26 12:52:46 +00:00
#env >> "$log_file"
2018-03-26 12:44:52 +00:00
echo $'\n\n' >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo $'### R U N ... ###\n' >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:48:41 +00:00
#1. Set and Check Enviroment
check_user
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
check_dependency
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
[ " $distro " != "" ] && distro = " _ $distro "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
# 1. Entpacken der Dateien des Live-Systems
[ -e " $filesystem_source " ] || {
echo " ### ERROR ### \" $filesystem_source \" does not exist! " >> " $log_file "
on_exit 15 >> " $log_file "
}
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
filesystem_extract " $filesystem_source " " $chroot_path " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
# 2. Vorbereiten für chroot-Umgebung:
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
chroot_initial$distro " $chroot_path " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
# 3. Setzen der Netzwerk-Einstellungen:
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
dns_set " $chroot_path " " $domain " " $nameserver " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
# 4. Updaten von Desinfec't:
os_update$distro " $chroot_path " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
# 5. Manuelle Aktionen - deaktiviert
2017-02-03 17:36:16 +00:00
2018-03-26 12:53:48 +00:00
echo "Now You Have TIME to do something MANUALY!"
#echo "enter in shell:
chroot $chroot_path /bin/bash
2018-03-26 12:44:52 +00:00
#echo "Are You Finisch? Then Press [ENTER]"
#read
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
# 6. Umount - Chroot Umgebung auflösen
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
chroot_umount$distro " $chroot_path " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
#Überprüfen ob alles ausgehängt wurde
[ "`chroot_is_mounted " $chroot_path "`" = = "true" ] && {
echo "### ERROR ### Cant Unmount Chroot!" >> " $log_file "
on_exit 21 >> " $log_file "
}
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
# 5. Packen und Ersetzen der Dateien
rm " $filesystem_source " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
filesystem_pack " $chroot_path " " $filesystem_source " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
chmod 777 " $filesystem_source " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
workspace_erase " $chroot_path / " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
on_exit 0
2017-02-03 17:36:16 +00:00
}
2018-03-26 12:52:46 +00:00
#remaster.sh update_iso #in arbeit
function main_update_iso( ) {
2018-03-26 12:44:52 +00:00
[ -f " $log_file " ] || touch " $log_file "
tail -f " $log_file " --pid= " $$ " &
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
chroot_path = "`mktemp -d`"
iso_extr_dir = "`mktemp -d`"
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "Remaster LOG `date '+%Y-%m-%d'`" > " $log_file "
2018-03-26 12:52:46 +00:00
echo "MODE: update_iso" >> " $log_file "
2018-03-26 12:44:52 +00:00
echo "HOST: `hostname`" >> " $log_file "
echo >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "### S e t t i n g s ###" >> " $log_file "
echo "#CD/DVD" >> " $log_file "
echo " iso_source=\" $iso_source \" " >> " $log_file "
echo " iso_destination=\" $iso_destination \" " >> " $log_file "
echo " iso_lable=\" $iso_lable \" " >> " $log_file "
echo >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "#Filesystem (for pxe)" >> " $log_file "
2018-03-26 12:47:46 +00:00
echo " filesystem_source=\" $filesystem_source \" " >> " $log_file "
2018-03-26 12:44:52 +00:00
echo >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "#Network" >> " $log_file "
echo " proxy_host=\" $proxy_host \" " >> " $log_file "
echo " proxy_port=\" $proxy_port \" " >> " $log_file "
echo " domain=\" $domain \" " >> " $log_file "
echo " nameserver=\" $nameserver \" " >> " $log_file "
echo >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "#remaster_script" >> " $log_file "
echo " distro=\" $distro \" " >> " $log_file "
echo >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo " log_file=\" $log_file \" "
echo " log_mail_aim=\" $log_mail_aim \" "
echo " log_mail_subject=\" $log_mail_subject \" "
echo ""
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "#Sonstiges" >> " $log_file "
echo " tools_list=\" $tools_list \" " >> " $log_file "
echo $'\n' >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo "### Enviroment ###"
echo " iso_extr_dir=\" $iso_extr_dir \" " >> " $log_file "
echo " chroot_path=\" $chroot_path \" " >> " $log_file "
2018-03-26 12:52:46 +00:00
#env >> "$log_file"
2018-03-26 12:44:52 +00:00
echo $'\n\n' >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
echo $'### R U N ... ###\n' >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:48:41 +00:00
#1. Set and Check Enviroment
check_user
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
check_dependency
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
[ " $distro " != "" ] && distro = " _ $distro "
2017-02-03 17:36:16 +00:00
2018-03-26 12:47:46 +00:00
# 2. Entpacke ISO
iso_extract " $iso_source " " $iso_extr_dir "
2017-02-03 17:36:16 +00:00
2018-03-26 12:52:46 +00:00
# 3. Checke pxe version
# if pxe is set
# if (date != date ); then $0 update_pxe #4.1
# filesystem = update #4.2
# else
# extrakt filesystem #5.
# update #6.
# done
# pack iso
2018-03-26 12:47:46 +00:00
# 3. Entpacken der Dateien des Live-Systems
filesystem_img = "`find " $iso_extr_dir " -name filesystem.squashfs`"
[ -e " $filesystem_img " ] || {
echo " ### ERROR ### Image \" $iso_source \" has no \"filesystem.squashfs\" " >> " $log_file "
on_exit 15 >> " $log_file "
2018-03-26 12:44:52 +00:00
}
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
filesystem_extract " $filesystem_img " " $chroot_path " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:47:46 +00:00
# 4. Vorbereiten für chroot-Umgebung:
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
chroot_initial$distro " $chroot_path " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:47:46 +00:00
# 5. Setzen der Netzwerk-Einstellungen:
2018-03-26 12:41:51 +00:00
2018-03-26 12:44:52 +00:00
proxy_enable$distro " $chroot_path " " $proxy_host " " $proxy_port " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
dns_set " $chroot_path " " $domain " " $nameserver " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:47:46 +00:00
# 6. Updaten von Desinfec't:
2018-03-26 12:44:52 +00:00
os_update$distro " $chroot_path " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:47:46 +00:00
# 7. Installation optionaler Tools:
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
tools_add$distro " $chroot_path " " $tools_list " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:47:46 +00:00
#addo ClamAV to conky_info
sed -i 's/# ${color white}ClamAV/ ${color white}ClamAV/g' " $chroot_path /etc/skel/.conkyrc "
2018-03-26 12:44:52 +00:00
chroot_clean " $chroot_path " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:47:46 +00:00
# 8. Manuelle Aktionen - deaktiviert
2018-03-26 12:52:46 +00:00
#echo "Now You Have TIME to do something MANUALY!"
#echo "enter in shell: #> chroot $chroot_path /bin/bash"
#chroot $chroot_path /bin/bash
2018-03-26 12:47:46 +00:00
#echo "Are You Finisch? Then Press [ENTER]"
# 9. Umount - Chroot Umgebung auflösen
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
chroot_umount$distro " $chroot_path " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
#Überprüfen ob alles ausgehängt wurde
[ "`chroot_is_mounted " $chroot_path "`" = = "true" ] && {
echo "### ERROR ### Cant Unmount Chroot!" >> " $log_file "
on_exit 21 >> " $log_file "
}
2017-02-03 17:36:16 +00:00
2018-03-26 12:47:46 +00:00
# 10. Packen und Ersetzen der Dateien des Live-Systems
rm " $filesystem_img " >> " $log_file "
2018-03-26 12:44:52 +00:00
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
filesystem_pack " $chroot_path " " $filesystem_img " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:47:46 +00:00
# wenn iso gewünscht
2018-03-26 12:44:52 +00:00
[ " $iso_destination " != "" ] && {
2018-03-26 12:47:46 +00:00
iso_create$distro " $chroot_path " " $iso_extr_dir " " $iso_destination " " $iso_lable " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
}
2017-02-03 17:36:16 +00:00
2018-03-26 12:47:46 +00:00
# wenn filesystem gewünscht
[ " $filesystem_source " != "" ] && {
#wen bereits forhanden dann löschen
[ -f " $filesystem_source " ] && rm " $filesystem_source "
cp " $filesystem_img " " $filesystem_source " >> " $log_file "
2018-03-26 12:44:52 +00:00
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:47:46 +00:00
chmod 666 " $filesystem_source "
2018-03-26 12:44:52 +00:00
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
}
2017-02-03 17:36:16 +00:00
2018-03-26 12:47:46 +00:00
chmod 666 " $iso_destination " " $filesystem_img " >> " $log_file "
2017-02-03 17:36:16 +00:00
2018-03-26 12:47:46 +00:00
workspace_erase " $iso_extr_dir / " " $chroot_path / " >> " $log_file "
error_level = " $? " ; [ " $error_level " != "0" ] && on_exit $error_level >> " $log_file "
on_exit 0
}
2018-03-26 12:52:46 +00:00
#remaster.sh update
function main_update( ) {
main_update_pxe
2018-03-26 12:44:52 +00:00
}
2017-02-03 17:36:16 +00:00
2018-03-26 12:50:34 +00:00
#remaster.sh error_code [error_level]
2018-03-26 12:48:41 +00:00
function main_error_code( ) {
error_code $1
}
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
#####################################################################################
################## F u n c t i o n s ################################################
#####################################################################################
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
### Error Handlings ###
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
#on_exit [error_level]
function on_exit( ) {
#send log and errorlevel[success/errorr xy]
2017-02-03 17:36:16 +00:00
2018-03-26 12:44:52 +00:00
if [ " $1 " != "0" ] ; then
log_mail_subject = " $log_mail_subject [ERROR] "
else
log_mail_subject = " $log_mail_subject [Success] "
fi
#Mail Body:
for mail_aim in ` echo " $log_mail_aim " | tr "," " " ` ; do
{
echo " $log_mail_subject "
echo $'####################################################################################\n\n'
cat " $log_file "
2018-03-26 12:52:46 +00:00
} | sendemail -s " $log_mail_smtp " -f " $log_mail_source " -t " $mail_aim " -u " $log_mail_subject " -o tls = no
2018-03-26 12:44:52 +00:00
done
[ " $1 " != "0" ] && {
chroot_umount$distro " $chroot_path " 2> /dev/null
workspace_erase " $iso_extr_dir / " " $chroot_path / " 2> /dev/null
2017-02-03 17:36:16 +00:00
}
2018-03-26 12:44:52 +00:00
exit $1
2017-02-03 17:36:16 +00:00
}
2018-03-26 12:44:52 +00:00
#error_code [error_level]
function error_code( ) {
code = " $1 "
case $code in
"" )
echo $'ID:\tDescription\n----------------------------------------------------\n1\tAllgemeiner Fehler\n2\tNo Paramters / wrong parameters'
echo $'3\tWrong Settings\n4\tProgramm missing\n\n10\tno root\n11\tfile no found\n12\tdir not found\n13\tcant create/delete file/dir'
2018-03-26 12:48:41 +00:00
echo $'14\tcorrupt file (unsquashfs, mount iso, ...)\n15\twrong file (iso has no squashfs-file ...)\n16\trequired Packet not found\n\n20\tmount error\n21\tunmoun error\n22\twrong filesystem'
2018-03-26 12:44:52 +00:00
; ;
1)
echo "Allgemeiner Fehler"
; ;
2)
echo "No Paramters / wrong parameters"
; ;
3)
echo "Wrong Settings"
; ;
4)
echo "Programm missing"
; ;
10)
echo "not executed as Root"
; ;
11)
echo "file no found"
; ;
12)
echo "dir not found"
; ;
13)
echo "cant create/delete file/dir"
; ;
14)
echo "corrupt file (unsquashfs, mount iso, ...)"
; ;
15)
echo "wrong file (iso has no squashfs-file ...)"
; ;
2018-03-26 12:48:41 +00:00
16)
echo "required Packet not found"
; ;
2018-03-26 12:44:52 +00:00
20)
echo "tmount error"
; ;
21)
echo "unmoun error"
; ;
22)
echo "wrong filesystem"
; ;
*)
echo $'No Defined Error Code.\nPerhaps an Error ocure on a Command wich was started by this Skritp.'
; ;
esac
}
2017-02-03 17:36:16 +00:00
2018-03-26 12:48:41 +00:00
#check_user
function check_user( ) {
#check root
[ "`whoami`" = = "root" ] || {
echo "### ERROR ### Remaster need ROOT permision!"
2018-03-26 12:50:34 +00:00
return 10
2018-03-26 12:48:41 +00:00
}
}
#check_dependency
function check_dependency( ) {
for packet in squashfs-tools xorriso wget sed sendemail; do
[ " `dpkg -l $packet 2>&1` " = = " dpkg-query: Kein Paket gefunden, das auf $packet passt " ] && {
echo " ### ERROR ### Packet $packet not installed "
2018-03-26 12:50:34 +00:00
return 16
2018-03-26 12:48:41 +00:00
}
done
2018-03-26 12:50:34 +00:00
return 0
2018-03-26 12:48:41 +00:00
}
2017-02-03 17:36:16 +00:00
### Workspace ###
#workspace_erase [workspace_path]
function workspace_erase( ) {
echo -n "erase workspace ... "
for dir in " $@ " ; do
[ -d " $dir " ] && rm -r -f " $dir "
done
echo "done"
}
### Filesystem ###
#filesystem_extract [filesystem_img_source] [chroot_path]
function filesystem_extract( ) {
echo "extract filesystem ..."
#$1 = filesystem_img_source
#$2 = chroot_path
filesystem_img_source = " $1 "
chroot_path = " $2 "
filesystem_log = "`mktemp`"
#Überfrüfen der Parameter
[ -f " $filesystem_img_source " ] || {
echo " ### ERROR ### filesystem_extract: squashfs \" $filesystem_img_source \" not exist! "
return 11
}
[ "`mkdir -p " $chroot_path "`" != "" ] && {
echo " ### ERROR ### filesystem_extract: chroot_path \" $chroot_path \" can't create! "
return 13
}
[ " `filesystem_get_type $chroot_path ` " != "ext4" ] && [ " `filesystem_get_type $chroot_path ` " != "btrfs" ] && {
2018-03-26 12:44:52 +00:00
echo " ### ERROR ### filesystem_extract: wrong filesystem (`filesystem_get_type $chroot_path `)! "
2017-02-03 17:36:16 +00:00
return 22
}
rm -r " $chroot_path "
#eigendliches entpacken
unsquashfs -d " $chroot_path " " $filesystem_img_source " > " $filesystem_log " || {
echo "### ERROR ### filesystem_extract: unsquashfs failed!"
return 14
}
grep -v "\[" " $filesystem_log "
rm " $filesystem_log "
echo "done"
}
#filesystem_pack [chroot_path] [filesystem_img_destination]
function filesystem_pack( ) {
echo "pack filesystem ..."
#$1 = chroot_path
#$2 = filesystem_img_destination
chroot_path = " $1 "
filesystem_img_destination = " $2 "
filesystem_log = "`mktemp`"
#Überfrüfen der Parameter
[ -d " $chroot_path " ] || {
echo " ### ERROR ### filesystem_extract: chroot_path \" $chroot_path \" not exist! "
return 12
}
#loslegen ...
rm -f " $filesystem_img_destination "
mksquashfs " $chroot_path " " $filesystem_img_destination " > " $filesystem_log " || {
echo "### ERROR ### filesystem_pack: mksquashfs failed!"
return 13
}
grep -v "\[" " $filesystem_log "
rm " $filesystem_log "
echo "done"
}
#filesystem_get_type [dir]
#(String)-> ext4, ext2, btfs, fuse, ...
function filesystem_get_type( ) {
fs_aTemp = ( ` df -T " $1 " ` )
echo ${ fs_aTemp [9] }
}
### ISO ###
#iso_extract [iso_source] [iso_extr_dir]
function iso_extract( ) {
echo -n "extract iso ... "
#$1 = iso_source
#$2 = iso_extr_dir
#check root
[ "`whoami`" = = "root" ] || {
echo "### ERROR ### iso_extract: need root permision!"
return 10
}
iso_source = " $1 "
[ -f " $iso_source " ] || {
echo " ### ERROR ### iso_extract: ISO \" $iso_source \" not exist! "
return 11
}
iso_extr_dir = " $2 "
[ -d " $iso_extr_dir " ] || {
echo "### ERROR ### iso_extract: aim directory not exist!"
return 12
}
#mace tmp mountpoint
tmpdir = "`mktemp -d`"
[ -d " $iso_extr_dir " ] && {
rm -r " $iso_extr_dir / "
mkdir " $iso_extr_dir "
2018-03-26 12:41:51 +00:00
}
2017-02-03 17:36:16 +00:00
#copy files ...
mount -o loop,ro " $iso_source " " $tmpdir "
cp -f -r " $tmpdir / " * " $iso_extr_dir "
#clear tmp mountpoint
umount " $iso_source "
rm -r " $tmpdir "
tmpdir =
echo "done"
}
#iso_create [chroot_path] [iso_extr_dir] [iso_destination] [iso_lable]
function iso_create( ) {
echo -n "create iso ..."
chroot_path = " $1 "
iso_extr_dir = " $2 "
iso_destination = " $3 "
iso_lable = " $4 "
[ -e " $iso_destination " ] && rm " $iso_destination "
xorriso -as mkisofs -graft-points -c isolinux/boot.cat -b isolinux/isolinux.bin \
-no-emul-boot -boot-info-table -boot-load-size 4 -isohybrid-mbr \
2018-03-26 12:41:51 +00:00
" $iso_extr_dir /isolinux/isolinux.bin " \
2017-02-03 17:36:16 +00:00
-eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot \
-isohybrid-gpt-basdat -V " $iso_lable " \
-o " $iso_destination " \
-r -J " $iso_extr_dir " \
--sort-weight 0 / --sort-weight 2 /boot --sort-weight 1 /isolinux
echo "done"
}
#iso_create_desinfect2015 [chroot_path] [iso_extr_dir] [iso_destination] [iso_lable]
function iso_create_desinfect2015( ) {
echo "prepere iso folder ... "
chroot_path = " $1 "
iso_extr_dir = " $2 "
iso_destination = " $3 "
iso_lable = " $4 "
#desinfect
rm " $iso_extr_dir /casper/initrd.lz "
wget http://www.heise.de/ct/projekte/desinfect/des15/initrd.lz -O " $iso_extr_dir /casper/initrd.lz "
echo "done"
iso_create " $chroot_path " " $iso_extr_dir " " $iso_destination " " $iso_lable "
}
#iso_create_desinfect2016 [chroot_path] [iso_extr_dir] [iso_destination] [iso_lable]
function iso_create_desinfect2016( ) {
#echo "prepere iso folder ... "
chroot_path = " $1 "
iso_extr_dir = " $2 "
iso_destination = " $3 "
iso_lable = " $4 "
#desinfect
#rm "$iso_extr_dir/casper/initrd.lz"
#wget http://www.heise.de/ct/projekte/desinfect/des15/initrd.lz -O "$iso_extr_dir/casper/initrd.lz"
#echo "done"
iso_create " $chroot_path " " $iso_extr_dir " " $iso_destination " " $iso_lable "
}
2018-03-26 12:41:51 +00:00
#iso_create_desinfect2017 [chroot_path] [iso_extr_dir] [iso_destination] [iso_lable]
function iso_create_desinfect2017( ) {
#echo "prepere iso folder ... "
chroot_path = " $1 "
iso_extr_dir = " $2 "
iso_destination = " $3 "
iso_lable = " $4 "
iso_create " $chroot_path " " $iso_extr_dir " " $iso_destination " " $iso_lable "
}
2017-02-03 17:36:16 +00:00
### chroot ###
#chroot_initial [chroot_dir]
function chroot_initial( ) {
echo -n "initial chroot ... "
#$1 = chroot_dir
#check chroot dir
chroot_dir = " $1 "
[ -d " $chroot_dir " ] || {
echo "### ERROR ### chroot_initial: chroot directory not exist!"
return 12
}
#mount virus definitions
mount -t tmpfs tmpfs " $chroot_dir /tmp "
mount -t tmpfs tmpfs " $chroot_dir /root "
mount --bind /dev " $chroot_dir /dev "
mount --bind /proc " $chroot_dir /proc "
rm " $chroot_dir /etc/resolv.conf "
cp "/etc/resolv.conf" " $chroot_dir /etc/resolv.conf "
echo "done"
}
#chroot_initial_desinfect2015 [chroot_dir]
function chroot_initial_desinfect2015( ) {
#$1 = chroot dir
chroot_initial " $1 "
echo -n "initial desinfect on chroot ... "
#check chroot dir
chroot_dir = " $1 "
[ -d " $chroot_dir " ] || {
echo "### ERROR ### chroot_initial_desinfect: chroot directory not exist!"
return 12
}
#mount virus definitions
mount --bind $chroot_dir /opt/BitDefender-scanner/var/lib/scan{ .orig,}
mount --bind $chroot_dir /var/kl/bases_rd{ .orig,}
echo "done"
}
#chroot_initial_desinfect2016 [chroot_dir]
function chroot_initial_desinfect2016( ) {
#$1 = chroot dir
chroot_initial " $1 "
echo -n "initial desinfect on chroot ... "
#check chroot dir
chroot_dir = " $1 "
[ -d " $chroot_dir " ] || {
echo "### ERROR ### chroot_initial_desinfect: chroot directory not exist!"
return 12
}
#mount virus definitions
mount --bind $chroot_dir /var/kl/bases_rd{ .orig,}
echo "done"
}
2018-03-26 12:41:51 +00:00
#chroot_initial_desinfect2017 [chroot_dir]
function chroot_initial_desinfect2017( ) {
#$1 = chroot dir
chroot_initial " $1 "
}
2017-02-03 17:36:16 +00:00
#chroot_clean [chroot_dir]
function chroot_clean( ) {
echo "clean chroot ... "
chroot_dir = " $1 "
2018-03-26 12:41:51 +00:00
chroot " $chroot_dir " /bin/bash -c "apt-get clean"
chroot " $chroot_dir " /bin/bash -c "rm -r /var/cache/apt/*"
chroot " $chroot_dir " /bin/bash -c "apt-get update"
chroot " $chroot_dir " /bin/bash -c "apt-get check"
2017-02-03 17:36:16 +00:00
echo "done"
}
#chroot_umount [chroot_dir]
function chroot_umount( ) {
echo -n "unmount chroot ... "
#check chroot dir
chroot_dir = " $1 "
[ -d " $chroot_dir " ] || {
echo "### ERROR ### chroot_umount: chroot directory not exist!"
return 12
}
for d in " $chroot_dir /tmp " " $chroot_dir /root " " $chroot_dir /proc " " $chroot_dir /dev " ; do
umount $d
retval = $?
[ " $retval " -gt 0 ] && {
echo " ### ERROR ### chroot_umount: can't umount \" $d \"! "
return 21
}
done
echo "done"
}
#chroot_umount_desinfect2015 [chroot_dir]
function chroot_umount_desinfect2015( ) {
#call main mount
chroot_umount " $1 "
echo -n "unmount desinfect on chroot ... "
#check chroot dir
chroot_dir = " $1 "
[ -d " $chroot_dir " ] || {
echo "### ERROR ### chroot_umount_desinfect: chroot directory not exist!"
return 12
}
for d in " $chroot_dir /opt/BitDefender-scanner/var/lib/scan " " $chroot_dir /var/kl/bases_rd " ; do
umount $d
retval = $?
[ " $retval " -gt 0 ] && {
echo " ### ERROR ### chroot_umount_desinfect: can't umount \" $d \"! "
return 21
}
done
echo "done"
}
#chroot_umount_desinfect2016 [chroot_dir]
function chroot_umount_desinfect2016( ) {
#call main mount
chroot_umount " $1 "
echo -n "unmount desinfect on chroot ... "
#check chroot dir
chroot_dir = " $1 "
[ -d " $chroot_dir " ] || {
echo "### ERROR ### chroot_umount_desinfect: chroot directory not exist!"
return 12
}
umount " $chroot_dir /var/kl/bases_rd "
[ " $? " -gt 0 ] && {
echo " ### ERROR ### chroot_umount_desinfect: can't umount \" $chroot_dir /var/kl/bases_rd\"! "
#return 21
}
2018-03-26 12:41:51 +00:00
2017-02-03 17:36:16 +00:00
echo "done"
}
2018-03-26 12:41:51 +00:00
#chroot_umount_desinfect2017 [chroot_dir]
function chroot_umount_desinfect2017( ) {
#call main mount
chroot_umount " $1 "
}
2017-02-03 17:36:16 +00:00
#chroot_is_mounted [chroot_dir]
#(Boolean)-> true | false
function chroot_is_mounted( ) {
#$1 = chroot directory
if [ "`mount | grep " $1 "`" != "" ] ; then
#ther is smething mounted
echo "true"
else
#nothing mounted
echo "false"
fi
}
2018-03-26 12:52:46 +00:00
#chroot_sh [chroot_dir] [command]
function chroot_sh( ) {
#check chroot dir
chroot_dir = " $1 "
[ -d " $chroot_dir " ] || {
echo "### ERROR ### chroot_umount: chroot directory not exist!"
return 12
}
command = " $2 "
[ -f " $chroot_dir /tmp/env.sh " ] || {
#if not exist create environment skript
cat " $chroot_dir /etc/environment " | grep -v "#" | grep "=" > " $chroot_dir /tmp/env "
while read line; do echo export $line ; done < " $chroot_dir /tmp/env " > " $chroot_dir /tmp/env.sh "
chmod +x " $chroot_dir /tmp/env.sh " && rm " $chroot_dir /tmp/env "
}
chroot " $chroot_dir " /bin/bash --login -c " . /tmp/env.sh; $command "
}
2017-02-03 17:36:16 +00:00
### Settings ###
### proxy
#proxy_enable [chroot_dir] [proxy_host] [proxy_port]
function proxy_enable( ) {
echo -n "enable proxy ... "
chroot_dir = " $1 "
proxy_host = " $2 "
proxy_port = " $3 "
[ -d " $chroot_dir " ] || {
echo "### ERROR ### chroot_umount_desinfect: chroot directory not exist!"
return 12
}
2018-03-26 12:52:46 +00:00
#Wenn alle zwei Parameter gegeben
2017-02-03 17:36:16 +00:00
if [ " $proxy_host " != "" ] && [ " $proxy_port " != "" ] ; then
2018-03-26 12:41:51 +00:00
echo " http_proxy=\"http:// $proxy_host : $proxy_port \" " >> $chroot_dir /etc/environment
echo " https_proxy=\"http:// $proxy_host : $proxy_port \" " >> $chroot_dir /etc/environment
echo " ftp_proxy=\"http:// $proxy_host : $proxy_port \" " >> $chroot_dir /etc/environment
2017-02-03 17:36:16 +00:00
2018-03-26 12:52:46 +00:00
echo " HTTP_PROXY=\"http:// $proxy_host : $proxy_port \" " >> $chroot_dir /etc/environment
echo " HTTPS_PROXY=\"http:// $proxy_host : $proxy_port \" " >> $chroot_dir /etc/environment
echo " FTP_PROXY=\"http:// $proxy_host : $proxy_port \" " >> $chroot_dir /etc/environment
2017-02-03 17:36:16 +00:00
echo " Acquire::http::Proxy \"http:// $proxy_host : $proxy_port \"\; " > $chroot_dir /etc/apt/apt.conf.d/90proxy
echo " Acquire::ftp::Proxy \"ftp:// $proxy_host : $proxy_port \"\; " >> $chroot_dir /etc/apt/apt.conf.d/90proxy
echo "done"
else
if [ " $proxy_host " = = "" ] && [ " $proxy_port " = = "" ] ; then
echo "done"
else
echo " ### ERROR ### proxy_enable: wrong parameters! (\" $chroot_dir \"; \" $proxy_host \"; \" $proxy_port \") "
echo "proxy_enable [chroot_dir] [proxy_host] [proxy_port]"
return 2
fi
fi
}
#proxy_enable_desinfect2015 [chroot_dir] [proxy_host] [proxy_port]
function proxy_enable_desinfect2015( ) {
proxy_enable $1 $2 $3
echo -n "enable proxy for desinfect's av ... "
chroot_dir = " $1 "
proxy_host = " $2 "
proxy_port = " $3 "
#Avast AntiVirus
sed -i " s/--skip-master-file/--skip-master-file --proxy-host= $proxy_host --proxy-port= $proxy_port /g " " $chroot_dir /AntiVirUpdate/avupdate "
sed -i " s/--proxy-host= $proxy_host --proxy-port= $proxy_port --proxy-host= $proxy_host --proxy-port= $proxy_port /--proxy-host= $proxy_host --proxy-port= $proxy_port /g " " $chroot_dir /AntiVirUpdate/avupdate "
#BitDefender
echo "ProxyEnable = Yes" >> " $chroot_dir /etc/BitDefender-scanner/bdscan.conf "
echo " ProxyHost = $proxy_host : $proxy_port " >> " $chroot_dir /etc/BitDefender-scanner/bdscan.conf "
#Clam AV
echo " HTTPProxyServer $proxy_host " >> " $chroot_dir /etc/clamav/freshclam.conf "
echo " HTTPProxyPort $proxy_port " >> " $chroot_dir /etc/clamav/freshclam.conf "
#Kaspersky
sed -i "s/<tDWORD name=\"UseProxy\">0<\/tDWORD>/<tDWORD name=\"UseProxy\">1<\/tDWORD>/g" " $chroot_dir /etc/kl/config.xml "
sed -i " s/<tSTRING name=\"ProxyHost\"><\/tSTRING>/<tSTRING name=\"ProxyHost\"> $proxy_host <\/tSTRING>/g " " $chroot_dir /etc/kl/config.xml "
sed -i " s/<tDWORD name=\"ProxyPort\"><\/tDWORD>/<tDWORD name=\"ProxyPort\"> $proxy_port <\/tDWORD>/g " " $chroot_dir /etc/kl/config.xml "