SpringBoot项目部署
1.IDEA打包,在IDEA终端,输入mvn clean install
mvn clean package
:删除目标文件夹、编译代码并打包mvn clean install
:删除目标文件夹、编译代码并打包、将打好的包放置到本地仓库中
2.将项目target中的jar包放入linux目录
3.运行jar包
-
前台运行(直接显示输出):
java -jar data-transport-server-0.0.1-SNAPSHOT.jar
-
后台运行:
nohup java -jar data-transport-server-0.0.1-SNAPSHOT.jar > data-transport.log 2>&1 &
&
符号表示将该命令或脚本放入后台运行*
>
将标准输出重定向到 data-transport.log
文件,而 2>&1
则将标准错误也重定向到与标准输出相同的文件。
要查看或监视后台进程,您可以使用 ps
命令结合 grep
来查找它:
ps -ef | grep data-transport-server-0.0.1-SNAPSHOT.jar
或者,如果您知道进程 ID(PID),您可以直接使用 kill
命令来停止它(如果需要的话):
kill PID
Docker常用命令
###postgres 是容器名称,根据自己容器来调整
docker ps -a #查看docker中所有容器信息
docker exec -it postgres bash #进入postgres bash
docker stop postgres
docker start postgres
docker restart postgres
docker logs postgres #查看相关日志
docker-compose up -d --build #根据docker-compose.yml,后台启动容器(启动之前自动构建所有需要的镜像)。
ps -ef | grep postgres #查看postgres相关进程
docker pull postgres(容器名) #拉取容器
docker rename samba samba_old #重命名容器名称
Samba常用命令
# 拉取镜像
docker pull dperson/samba
#比如在10.0.4.33主机(部署时 指的是电科院前置机)上,设置共享目录/home/share
docker run -it --name samba -p 139:139 -p 445:445 -v /home/share:/mount -d dperson/samba -w "WORKGROUP" -u "share;ABC.123456" -s "share;/mount/;yes;no;no;all;none"
docker run -it --name samba -p 139:139 -p 445:445 -v /home/share:/mount -d dperson/samba -w "WORKGROUP" -u "share;ABC.123456" -s "share;/mount/;yes;no;no;all;none;yes"
#在另一台主机(部署时 指的是node3)上,映射共享命令,将共享目录10.0.4.33上的/home/share映射到本地/home/RSData
mount -t cifs //10.0.4.33/share /home/k8s/qls/ftpfile/product/scannpath -o username=share,password=ABC.123456,domain=WORKGROUP
mount -t cifs //10.0.4.33/share /home/k8s/qls/ftpfile/product/scannpath -o username=share,password=ABC.123456,domain=WORKGROUP,iocharset=utf8,file_mode=0777,dir_mode=0777
#取消映射
umount /home/RSData
修改文件夹权限
使得远程的映射共享目录主机的用户可删除共享目录中的文件
chmod 777 -R /home/share(文件夹路径)
chmod 777 -R /home/base(文件夹路径)
chmod 777 -R /home/operator/
chmod 777 -R /home/operator/tif_tool
在Java中修改文件夹权限代码
/**
* 修改linux环境下文件权限为777
*
* @param filePath 文件全路径
*/
public static void changeFilePermission777(String filePath) {
File file = new File(filePath);
log.info("{} can 1 file.canExecute()={}", filePath, file.canExecute());
//设置权限
Set<PosixFilePermission> perms = new HashSet<>();
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_WRITE);
perms.add(PosixFilePermission.OWNER_EXECUTE);
perms.add(PosixFilePermission.GROUP_READ);
perms.add(PosixFilePermission.GROUP_WRITE);
perms.add(PosixFilePermission.GROUP_EXECUTE);
perms.add(PosixFilePermission.OTHERS_READ);
perms.add(PosixFilePermission.OTHERS_WRITE);
perms.add(PosixFilePermission.OTHERS_EXECUTE);
Path path = Paths.get(filePath);
try {
Files.walk(path).forEach(
p -> {
try {
Files.setPosixFilePermissions(p, perms);//修改文件的权限
} catch (Exception e) {
log.error("文件权限修改失败", e);
}
}
);
} catch (IOException e) {
log.error("文件权限修改失败", e);
}
log.info("{} can 2 file.canExecute()={}", path, file.canExecute());
}
常用Linux命令
#打开并自动刷新日志内容
tail -f example.log
加入算法文件
step1 在home路径下创建operator文件
/home/operator/tif_tool
step2 在终端执行
chmod 777 -R /home/operator/
chmod 777 -R /home/operator/tif_tool
step3 将算法文件放到目录/home/operator/下