#!/bin/bash
BASEPATH=$(cd `dirname $0`; pwd)
TARGET_DIR=$1
SBR_GROUP=$2
SBR_USER=$3
if [ ! -d $TARGET_DIR ];then
echo "must be set target dir"
exit 1
fi
TARGET_DIR=$(echo ${TARGET_DIR%/})
if [ -z $SBR_GROUP ];then
echo "must be set user group"
exit 1
fi
if [ -z $SBR_USER ];then
echo "must be set user"
exit 1
fi
echo "clamd starting ..."
cat > $BASEPATH/clamd << EOF
#!/bin/bash
#chkconfig: 2346 21 98
#description:clamd main service Daemon
BASEPATH=\$(cd \`dirname \$0\`; pwd)
clamd_path=$TARGET_DIR
export LD_LIBRARY_PATH=\$clamd_path/scan64/lib:\$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=\$clamd_path/scan64/lib64:\$LD_LIBRARY_PATH
start_fun(){
echo -e "\033[36;1mstart...\033[0m"
result=\$(ps aux | grep -v grep | grep "$clamd_path/scan64/sbin/clamd")
if [[ \$result =~ "\$clamd_path/scan64/sbin/clamd" ]];then
echo -e "\033[36;1mhas started\033[0m"
else
\$clamd_path/scan64/sbin/clamd -c \$clamd_path/scan64/etc/clamd.conf
echo -e "\033[36;1mstart [ok]\033[0m"
fi
}
stop_fun(){
echo -e "\033[36;1mstop...\033[0m"
result=\$(ps aux | grep -v grep | grep "\$clamd_path/scan64/sbin/clamd")
if [[ \$result =~ "\$clamd_path/scan64/sbin/clamd" ]];then
pids=\$(ps aux | grep "\$clamd_path/scan64/sbin/clamd" | grep -v grep | awk '{print \$2}')
echo -e "\033[36;1mstop clamd successful!\033[0m"
kill -9 \$pids
else
echo -e "\033[36;1mclamd not running !\033[0m"
fi
}
restart_fun(){
echo -e "\033[36;1mrestart...\033[0m"
result=\$(ps aux | grep -v grep | grep "\$clamd_path/scan64/sbin/clamd")
if [[ \$result =~ "\$clamd_path/scan64/sbin/clamd" ]];then
pids=\$(ps aux | grep "\$clamd_path/scan64/sbin/clamd" | grep -v grep | awk '{print \$2}')
kill -9 \$pids
\$clamd_path/scan64/sbin/clamd -c \$clamd_path/scan64/etc/clamd.conf
if [[ \$result =~ "\$clamd_path/scan64/sbin/clamd" ]];then
echo -e "\033[36;1mrestart clamd [ok]\033[0m"
else
echo -e "\033[36;1mrestart [fial]\033[0m"
fi
else
echo -e "\033[36;1mclamd not running !\033[0m"
fi
}
status_fun(){
echo -e "\033[36;1mstatus...\033[0m"
result=\$(ps aux | grep -v grep | grep "\$clamd_path/scan64/sbin/clamd")
if [[ \$result =~ "\$clamd_path/scan64/sbin/clamd" ]];then
echo -e "\033[36;1mclamd is running !\033[0m"
else
echo -e "\033[36;1mclamd not running !\033[0m"
fi
}
case \$1 in
start)
start_fun
;;
stop)
stop_fun
;;
restart)
restart_fun
;;
status)
status_fun
;;
*)
echo "please input start or stop or restart or status !"
exit
esac
EOF
mkdir -p $TARGET_DIR/scan64
cp -rfv $BASEPATH/clamd /etc/init.d/clamd
chmod 655 /etc/init.d/clamd
cp -rfv $BASEPATH/bin/ $TARGET_DIR/scan64/
chmod 655 $TARGET_DIR/scan64/bin/cloud_scan
cp -rfv $BASEPATH/download $TARGET_DIR/scan64/
cp -rfv $BASEPATH/cloud $TARGET_DIR/scan64/
cp -rfv $BASEPATH/etc $TARGET_DIR/scan64/
cp -rfv $BASEPATH/lib $TARGET_DIR/scan64/
cp -rfv $BASEPATH/lib64 $TARGET_DIR/scan64/
cp -rfv $BASEPATH/logs $TARGET_DIR/scan64/
cp -rfv $BASEPATH/sbin $TARGET_DIR/scan64/
chmod 655 $TARGET_DIR/scan64/sbin/clamd
cp -rfv $BASEPATH/share $TARGET_DIR/scan64/
cp -rfv $BASEPATH/uninstall $TARGET_DIR/scan64/uninstall
chmod 655 $TARGET_DIR/scan64/uninstall
cp -rfv $BASEPATH/updata $TARGET_DIR/scan64/
if [ -f "$TARGET_DIR/scan64/etc/clamd.conf" ];then
rm -rf $TARGET_DIR/scan64/etc/clamd.conf
fi
if [ -f "$TARGET_DIR/scan64/etc/freshclam.conf" ];then
rm -rf $TARGET_DIR/scan64/etc/freshclam.conf
fi
touch $TARGET_DIR/scan64/etc/clamd.conf
touch $TARGET_DIR/scan64/etc/freshclam.conf
echo "LogFile $TARGET_DIR/scan64/logs/clamd.log" >> $TARGET_DIR/scan64/etc/clamd.conf
echo "PidFile $TARGET_DIR/scan64/updata/clamd.pid" >> $TARGET_DIR/scan64/etc/clamd.conf
echo "DatabaseDirectory $TARGET_DIR/scan64/updata" >> $TARGET_DIR/scan64/etc/clamd.conf
echo "LocalSocket /tmp/clamd.socket" >> $TARGET_DIR/scan64/etc/clamd.conf
echo "TCPSocket 3310" >> $TARGET_DIR/scan64/etc/clamd.conf
echo "TCPAddr 127.0.0.1" >> $TARGET_DIR/scan64/etc/clamd.conf
echo "ReadTimeout 300" >> $TARGET_DIR/scan64/etc/clamd.conf
echo "DatabaseDirectory $TARGET_DIR/scan64/updata" >> $TARGET_DIR/scan64/etc/freshclam.conf
rpm_result=$(rpm -qa | grep zip)
if [[ $rpm_result == "" ]];then
yum install zip -y
if [ $? -ne 0 ];then
echo "Install zip error"
exit
fi
fi
rpm_result=$(rpm -qa | grep unzip)
if [[ $rpm_result == "" ]];then
yum install unzip -y
if [ $? -ne 0 ];then
echo "Install unzip error"
exit
fi
fi
chkconfig --add clamd
chkconfig --level 2346 clamd on
service clamd start
if [ $? -ne 0 ];then
echo "clamd start error."
fi
echo "clamd starting ok"
exit 0