准备工作
克隆代码
git clone --branch 2.1.2 https://gitee.com/xuxueli0323/xxl-job.git
初始化数据库
mysql -h[数据库地址] -u[管理员用户名] -p[管理员密码] -e "source [克隆路径]/xxl-job/doc/db/tables_xxl_job.sql;"
1. jar包方式部署
修改配置文件
cd [克隆路径]/xxl-job/xxl-job-admin/src/main/resource
vim application.properties
vim logback.xml
maven打包
cd [克隆路径]/xxl-job
mvn package
执行生成的jar包即可
cd [克隆路径]/xxl-job/xxl-job-admin/target
nohup java -jar xxl-job-admin-2.1.2.jar >/dev/null &
2. docker方式部署
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://[数据库地址]:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=[数据库用户名] --spring.datasource.password=[数据库密码] --xxl.job.accessToken=[token值]" -p 8080:8080 -v /mnt/logs:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin:2.1.2
访问:
http://IP:8080/xxl-job-admin
用户名:admin 初始密码:123456
jar包方式自动安装脚本:
#!/bin/bash
# 作者:HCWEI
# 说明:此脚本需要用到git、mvn、mysql命令行工具,运行前请确认已正确安装上述工具
source /etc/profile
checktools(){
which git &> /dev/null
[ $? = 0 ]||(echo "未找到git,请检查是否安装git"&&exit 1)
which mvn &> /dev/null
[ $? = 0 ]||(echo "未找到mvn,请检查是否安装mvn"&&exit 1)
which mysql &> /dev/null
[ $? = 0 ]||(echo "未找到mysql,请检查是否安装mysql"&&exit 1)
}
clonecode(){
# 克隆代码,服务器上需要安装git,这里拉取码云上的2.1.2版本
git clone --branch 2.1.2 https://gitee.com/xuxueli0323/xxl-job.git
}
cleancode(){
# 获取当前脚本路径
curPath=$(dirname $(readlink -f "$0"))
rm -rf $curPath/xxl-job
}
mysqlset(){
# 设置数据库地址及用户信息
read -p "请输入数据库地址:" url
read -p "请输入数据库用户:" user
read -p "请输入数据库密码:" pwd
}
# 一、配置参数,maven打包xxl-job-admin
package(){
# 获取当前脚本路径
curPath=$(dirname $(readlink -f "$0"))
# 设置日志目录
read -p "请输入日志目录:" logurl
# 替换参数
sed -i "s/127.0.0.1/$url/g" xxl-job/xxl-job-admin/src/main/resources/application.properties
sed -i "s/root_pwd/$pwd/g" xxl-job/xxl-job-admin/src/main/resources/application.properties
sed -i "s/root/$user/g" xxl-job/xxl-job-admin/src/main/resources/application.properties
sed -i "s!/data/applogs!$logurl!g" xxl-job/xxl-job-admin/src/main/resources/logback.xml
# maven打包
cd xxl-job
mvn package
cd xxl-job-admin/target
mv *.jar /tmp/
echo -e "\033[37;42m xxl-job安装成功,文件路径:/tmp/xxl-job-admin-2.1.2.jar\033[0m"
}
# 二、数据库初始化并授权
initializedb(){
# 获取当前脚本路径
curPath=$(dirname $(readlink -f "$0"))
# 导入初始化数据,新建普通用户并授权
read -p "请输入数据库管理员用户:" ruser
mysql -h$url -u$ruser -p -e "source $curPath/xxl-job/doc/db/tables_xxl_job.sql;"
mysql -h$url -u$ruser -p -e "grant all on xxl_job.* to $user@'%' identified by '$pwd';"
}
main(){
INPUT1=$1
case $INPUT1 in
package)
checktools;
clonecode;
mysqlset;
package;
cleancode;
;;
initdb)
checktools;
clonecode;
mysqlset;
initializedb;
cleancode;
;;
install)
checktools;
clonecode;
mysqlset;
initializedb;
package;
cleancode;
;;
help)
echo -e "\n* * * * * * * * * *\n\npackage:生成可执行jar包\n\ninitdb:初始化数据库并授权\n\ninstall:全新安装xxl-job\n\n* * * * * * * * * *\n"
;;
*)
echo $"Usage: $0 { package | initdb | install | help }";
;;
esac
}
main $1