Linux/Unix
第一页 1 2 3 4 5 6 7 8 9 下页 最后页 [ 显示模式: 摘要 | 列表 ]

发布专属环境SHELL脚本

[不指定 2023/10/13 17:06 | by 刘新修 ]
C#代码
  1. #ifconfig  
  2. echo $projectPath  
  3. echo $developer  
  4. echo $rebuildBranch  
  5. ### 获取最后一层的项目名称  
  6. las_dir=$(basename "$projectPath")  
  7. ### 提取上一层目录的全路径  
  8. cur_dir=$(dirname $projectPath)  
  9. ### 获取业务线的名称第二层  
  10. pat_dir=$(basename "$cur_dir")  
  11.   
  12. echo $las_dir  
  13. echo $cur_dir  
  14. echo $pat_dir  
  15. ### 通用前端发布脚本( 从本地同步来取 dist.tar.gz 文件包 )  ###  
  16. wwwroot=/data/apps/nginx/htdocs/public/frontend$projectPath &&  
  17. cd $wwwroot && pwd && git fetch && git checkout dev-$developer &&  
  18. git pull origin dev-$developer &&  
  19. bash /sh/downdist.sh /data/apps/nginx/htdocs/public/frontend$projectPath/upload/dynamicAssets.json /data/apps/nginx/htdocs/public/tarfile/XXX/$developer$projectPath http://dl.ktm1234.com/XXX/$developer$projectPath  
  20. ### 通用前端发布脚本( 从本地同步来取 dist.tar.gz 文件包 )  ###  
  21. wwwroot=/data/apps/nginx/htdocs/public/frontend$projectPath &&  
  22. cd $wwwroot && pwd  
  23.   
  24. if [[ $rebuildBranch == true ]] ;then  
  25.     echo '---- 全新构建分支 ------'  
  26.     git checkout . && git checkout master &&  
  27.     git branch -D dev-$developer && git fetch &&  
  28.     git checkout -b dev-$developer origin/dev-$developer &&  
  29.     bash /sh/downdist.sh /data/apps/nginx/htdocs/public/frontend$projectPath/upload/dynamicAssets.json /data/apps/nginx/htdocs/public/tarfile/XXX/$developer$projectPath http://dl.ktm1234.com/XXX/$developer$projectPath  
  30. else  
  31.     echo '---- 更新新版本 ------'  
  32.     git fetch && git checkout dev-$developer &&  
  33.     git checkout . && git pull origin dev-$developer &&  
  34.     bash /sh/downdist.sh /data/apps/nginx/htdocs/public/frontend$projectPath/upload/dynamicAssets.json /data/apps/nginx/htdocs/public/tarfile/XXX/$developer$projectPath http://dl.ktm1234.com/XXX/$developer$projectPath  
  35. fi  

shell(bash)替换字符串大全

[不指定 2023/08/16 11:13 | by 刘新修 ]

1. 替换(只替换一个)

varrB=${varA/str1/str2}

C#代码
  1. $ var="AAAszip_BBB.zip";var2=${var/zip/ZIP};echo $var2};  
  2. AAAsZIP_BBB.zip  
  3. $ var="AAAszip_BBB.zip";var2=${var/.zip/.ZIP};echo $var2;  
  4. AAAszip_BBB.ZIP  

2. 替换(替换所有)

varB=${varA//str1/str2}

C#代码
  1. $ var="AAAszip_BBB.zip";var2=${var//zip/ZIP};echo $var2;  
  2. AAAsZIP_BBB.ZIP  

3. 替换(替换开头一个)

varB=${varA/#str1/str2}

C#代码
  1. $ var=".zipAAAszip_BBB.zip_CCC";var2=${var/#.zip/.ZIP};echo $var2;  
  2. .ZIPAAAszip_BBB.zip_CCC  

不存在
varB=${varA//#str1/str2}

4. 替换(替换结尾一个)

varB=${varA/%str1/str2}

C#代码
  1. $ var="AAAszip_BBB.zip_CCC.zip";var2=${var/%.zip/.ZIP};echo $var2;  
  2. AAAszip_BBB.zip_CCC.ZIP  

不存在
varB=${varA//%str1/str2}

而且可以很好地匹配到“.”点号

5. 截取,删除右边,保留左边,从右起最短匹配

$varB=${varAa%<pattern>}

C#代码
  1. $ a="aaa=bbb";b=${a%=*};echo $b  
  2. aaa  
  3. $ a="http://localhost:3000/china/shanghai.html";b=${a%/*};echo $b  
  4. http://localhost:3000/china  

6. 截取,删除右边,保留左边,从右起最长匹配

$varb=${vara%%<pattern>}从右起最长匹配

C#代码
  1. $ a="http://localhost:3000/china/shanghai.html";b=${a%%/*};echo $b  
  2. http:  

7. 截取,删除左边,保留右边,从左起最短匹配

$varb=${vara#<pattern>}

C#代码
  1. $ a="aaa=bbb";b=${a#*=};echo $b  
  2. bbb  
  3. $ a="http://localhost:3000/china/shanghai.html";b=${a#*/};echo $b  
  4. /localhost:3000/china/shanghai.html  

8. 截取,删除左边,保留右边,从左起最长匹配

$varb=${vara##<pattern>}从左起最长匹配

C#代码
  1. $ a="http://localhost:3000/china/shanghai.html";b=${a##*/};echo $b  
  2. shanghai.html  

SHELL替换字符串内容

[不指定 2023/08/11 17:22 | by 刘新修 ]
C#代码
  1. //http://dl.ktm1234.com/injured/work-litigation/  
  2. //http://dl.ktm1234.com/XXX/jiaye/injured/work-litigation/  
  3. var="http://dl.ktm1234.com/injured/work-litigation/";var2=${var//com/com\/XXX\/jiaye};echo $var2;  

结果:http://dl.ktm1234.com/XXX/jiaye/injured/work-litigation/

C#代码
  1. #!/bin/bash  
  2. #保留文件数  
  3. ReservedNum=2  
  4. #要删除文件的,父级目录  
  5. FileDir=/usr/docker/springCloud/project/  
  6. #循环子目录列表  
  7. for element in `ls $FileDir`  
  8. do  
  9.     # 拼接成完成目录 (父目录路径/子目录名)  
  10.     dir_or_file=$FileDir$element  
  11.     # 获取子目录下的指定文件格式的总数量  
  12.     FileNum=$(ls -l $dir_or_file | grep 'keda-' |wc -l)  
  13.     # 输出 删除前的 指定格式的文件数量  
  14.     echo  $element "jar num:" $FileNum  
  15.     # 如果 数量大于保留数量,那就循环删除 文件  
  16.     while(( $FileNum > $ReservedNum))  
  17.     do  
  18.        OldFile=$(ls -rt $dir_or_file | grep 'keda-'| head -1)  
  19.        echo  $element "Delete jar:"$OldFile  
  20.        rm -rf $dir_or_file/$OldFile  
  21.        let "FileNum--"  
  22.     done  
  23. done  
  24. # 删除完后,再循环输出一下 每个子目录下的文件数量  
  25. for element in `ls $FileDir`  
  26. do  
  27.     dir_or_file=$FileDir$element  
  28.     FileNum=$(ls -l $dir_or_file | grep 'keda-' |wc -l)  
  29.     echo  $element "jar num:" $FileNum  
  30. done  

SHELL命令记录

[不指定 2023/06/03 11:43 | by 刘新修 ]

SHELL 获取目录

C#代码
  1. ### 提取目录中的名称  
  2. las_dir=$(basename "$PWD")  
  3. cur_dir=$(dirname $(pwd))  
  4. lat_dir=$(basename "$cur_dir")  

 

C#代码
  1. ### 把docker容器提交成新的镜像  
  2. cd /data/backup  
  3.  
  4. ### 备份Jenkins容器  
  5. docker commit -a "Jesse Liu" -m "v20230602" jenkins-rsync-v2 jenkins-rsync:v2b  
  6. docker save -o jenkins-rsync-v2b.tar jenkins-rsync:v2b  
  7.  
  8. ### 备份Nginx容器  
  9. docker commit -a "Jesse Liu" -m "v20230602" nginx-nodejs-redis-v2 nginx-nodejs-redis:v2b  
  10. docker save -o nginx-nodejs-redis-v2b.tar nginx-nodejs-redis:v2b  
  11.   
  12.   
  13. docker commit -a "Jesse Liu" -m "v20230602" jenkins-rsync-v2 jenkins-rsync:v2b  
  14. docker save -o jenkins-rsync-v2b.tar jenkins-rsync:v2b  
  15. docker commit -a "Jesse Liu" -m "v20230602" nginx-nodejs-redis-v2 nginx-nodejs-redis:v2b  
  16. docker save -o nginx-nodejs-redis-v2b.tar nginx-nodejs-redis:v2b  
  17.  
  18.  
  19. ### SHELL脚本依次压缩导出tgz文件  
  20. cd /data/backup &&  
  21. rm -rf jenkins-rsync-v2b.tgz &&  
  22. rm -rf nginx-nodejs-redis-v2b.tgz &&  
  23. docker rmi jenkins-rsync:v2b &&  
  24. docker rmi nginx-nodejs-redis:v2b &&  
  25. docker commit -a "Jesse Liu" -m "v20230602" jenkins-rsync-v2 jenkins-rsync:v2b &&  
  26. docker image save jenkins-rsync:v2b > jenkins-rsync-v2b.tgz &&  
  27. docker commit -a "Jesse Liu" -m "v20230602" nginx-nodejs-redis-v2 nginx-nodejs-redis:v2b &&  
  28. docker image save nginx-nodejs-redis:v2b > nginx-nodejs-redis-v2b.tgz  
  29.  
  30.  
  31. ### SHELL脚本依次解压导入docker镜像  
  32. docker image load -i jenkins-rsync-v2b.tgz  
  33. docker image load -i nginx-nodejs-redis-v2b.tgz  
  34.  
  35. ### 编辑和查看定时器配置  
  36. crontab -e  
  37. crontab -l  
  38.   
  39. 每星期六的晚上11 : 00 pm重启smb  
  40. 0 23 * * 6 /etc/init.d/smb restart  
  41.   
  42. 每天的0:30重启smb  
  43. 30 0 * * * /etc/init.d/smb restart  
  44. 30 0 * * * root /sh/docker-backup.sh  
  45.   
  46. 一分钟执行一次  
  47. */1 * * * * root /sh/test.sh  
  48. */1 * * * * root /sh/test.sh  
  49.  
  50. ### 重启定时器服务  
  51. chmod 755 /sh/test.sh  
  52. chmod 755 /sh/docker-backup.sh  
  53. chmod 755 /sh/scp-docker.sh  
  54. systemctl restart crond  
 

SSH密钥登录

[不指定 2023/06/03 11:30 | by 刘新修 ]

 ### 本地机器生成密钥

ssh-keygen -t rsa
 
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:PeMmQH0e2HL+jxZjYJ6/8Hej+ANJ06gm+sUIhzCLNho root@localhost
The key's randomart image is:
+---[RSA 3072]----+
|                 |
|       . o       |
|   o  . + = o    |
|  . +..  Bo= .   |
|E+ . o..SoOoo    |
|o..   ooo+o*+    |
|.     ..+o+ooo   |
|     .  .o o++...|
|      ..   o==+..|
+----[SHA256]-----+
[root@localhost ~]# 
 
进入主机A ~/.ssh/ 目录,会发现生成了一对密钥
Your identification has been saved in /home/test/.ssh/id_rsa.
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
 
### A将公钥文件中的内容复制到 ==> 远程服务器端B
~/.ssh/id_rsa.pub
~/.ssh/authorized_keys
 
## 步骤如下
[root@localhost .ssh]# pwd
/root/.ssh
[root@localhost .ssh]# ll
total 12
-rw------- 1 root root 891 Jun  1 14:52 id_rsa
-rw-r--r-- 1 root root 228 Jun  1 14:52 id_rsa.pub
-rw-r--r-- 1 root root 172 Jun  1 22:28 known_hosts
[root@localhost .ssh]# vi /root/.ssh/authorized_keys
 
### 粘贴id_rsa.pub内的字符串到这个文件,对于OpenSSH来说,我们需要将公钥加入到~/.ssh/authorized_keys中。每个公钥一行,千万注意不要换行,否则可能不能正常工作。
### 修改文件权限
chmod 600 /root/.ssh/authorized_keys
 
 
### 修改/etc/ssh/sshd_config 文件
修改/etc/ssh/sshd_config 文件,将RSAAuthentication 和 PubkeyAuthentication 后面的值都改成yes
将PasswordAuthentication yes 修改成 PasswordAuthentication no
 
### 重启SSHD
/etc/init.d/sshd restart

rsync 常用的同步命令

[不指定 2023/06/03 11:12 | by 刘新修 ]
C++代码
  1. ### 由本地向服务器推送  
  2. rsync -avz --port=8730 dist.tar.gz liuxinxiu@127.0.0.1::test  
  3. rsync -avzP --port=8730 dist.tar.gz dynamicAssets.json jenkins@172.16.207.22::work-litigation  
  4.   
  5.   
  6. ### 由服务器向本地下载  
  7. rsync -avz liuxinxiu@127.0.0.1::test /test/111  
  8. rsync -avz jenkins@172.16.207.22::work-litigation /var/www/html/mirrors/frontend/injured/work-litigation  
  9.   
  10.   
  11. ### 创建软连接(前边是存储源——后边是软链接)  
  12. ln -s /data/apps/rsync/www/release /data/apps/nginx/htdocs/release  

 以下是具体是例子:

C#代码
  1. ### 由本地向服务器推送  
  2. cd /data/apps/nginx/htdocs/$projectPath/upload  
  3. rsync -avzP --port=8730 dist.tar.gz dynamicAssets.json jenkins@172.16.207.22::$las_dir  
  4.  
  5.  
  6.  ### 由本地向服务器推送  
  7. cd /data/apps/nginx/htdocs/$projectPath/upload  
  8. rsync -avzP --port=8730 dist.tar.gz dynamicAssets.json jenkins@172.16.207.22::release/$projectPath &&  
  9. cd /data/apps/rsync/www/release/$lat_dir &&  
  10. scp -r $pat_dir root@10.10.9.99:/var/www/html/mirrors/frontend/$pat_dir &&  
  11. curl http://10.10.9.99/frontend/$projectPath  

 

 

C#代码
  1. Key exchange failed. No compatible key exchange method. The server supports these methods: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512  
  2. No compatible hostkey. The server supports these methods: rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519  

1、通过web管理终端登录系统

 

编辑/etc/ssh/sshd_config

在最下面新增

C#代码
    • KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org

2、重启sshd服务

 

systemctl restart sshd

Tags: , ,

Rocky Linux-8.6 Docker安装

[不指定 2022/11/28 08:27 | by 刘新修 ]
C#代码
  1. yum install -y yum-utils device-mapper-persistent-data lvm2  
  2. yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  
  3. yum install docker-ce -y --allowerasing  
  4. systemctl start docker  
  5. systemctl enable docker  
 
第一页 1 2 3 4 5 6 7 8 9 下页 最后页 [ 显示模式: 摘要 | 列表 ]