第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]
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  

 

XML/HTML代码
  1. <!--  
  2.  * @Description: npage.vue  
  3.  * @Version: 1.0  
  4.  * @Author: LiuXia  
  5.  * @Date: 2022-08-01 20:32:06  
  6.  * @LastEditors: Jesse Liu  
  7.  * @LastEditTime: 2023-07-17 20:38:42  
  8. -->  
  9. <template>  
  10.   <div class="wscn-http404-container">  
  11.       <h1 style="line-height:300px; text-align:center">npage.vue (新测试文件)</h1>  
  12.       <div>time:</div>  
  13.   </div>  
  14. </template>  
  15.   
  16.   
  17.   
  18. <script>  
  19. import { parseTime } from '@/utils'  
  20. import { downloadFile } from "@/utils/getFile";  
  21. import { fileLinkToStreamDownload , urlFile } from '@/utils/down'  
  22. export default {  
  23.   name: 'PageTest',  
  24.   computed: {  
  25.     message() {  
  26.       return 'PageTest'  
  27.     },  
  28.     parseTime: parseTime  
  29.   },  
  30.   methods:{  
  31.     downfile(filePath){  
  32.       //https://bbwx.kaitaiming.com/image/group1/M00/24/AE/rBBlxWS0vaqAR8ltAAGsWlc-FnY677.pdf  
  33.   
  34.       // 后端上传文件返回请求的filePath地址  
  35.       console.log( filePath, 3333333 );  
  36.       //  获取文件名  
  37.       let fileName = urlFile(filePath, 1);  
  38.       //  获取文件后缀  
  39.       let fileExtension = urlFile(filePath, 2);  
  40.       //  url下载  
  41.       fileLinkToStreamDownload(filePath,fileName,fileExtension);  
  42.     }  
  43.   },  
  44.   mounted() {  
  45.     this.downfile('http://localhost:9527/image/group1/M00/24/AE/rBBlxWS0vaqAR8ltAAGsWlc-FnY677.pdf');  
  46.     this.$store.dispatch("case/casesList/downloadFile",{}).then((res)=>{  
  47.         let data = res.data;  
  48.         let headers = res.headers;  
  49.           
  50.         /*** 调用下载文件 ***/  
  51.         //downloadFile(data, headers)  
  52.     })  
  53.   },  
  54. }  
  55. </script>  
  56.   
  57.   
  58. <style lang="scss" scoped>  
  59. </style>  
JavaScript代码
  1. /* 
  2.  * @Description: down.js 
  3.  * @Author: Jesse Liu 
  4.  * @Date: 2023-02-06 16:27:18 
  5.  * @LastEditors: Jesse Liu 
  6.  * @LastEditTime: 2023-07-17 20:20:05 
  7.  */  
  8. export function fileLinkToStreamDownload(url, fileName, type) {  
  9.   let reg = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~\/])+$/;  
  10.   if (!reg.test(url)) {  
  11.     throw new Error("传入参数不合法,不是标准的文件链接");  
  12.   } else {  
  13.     let xhr = new XMLHttpRequest();  
  14.     xhr.open('get', url, true);  
  15.     xhr.setRequestHeader('Content-Type', `application/${type}`);  
  16.     xhr.responseType = "blob";  
  17.     xhr.onload = function () {  
  18.       if (this.status == 200) {  
  19.         //接受二进制文件流  
  20.         console.log(this)  
  21.         var blob = this.response;  
  22.         const blobUrl = window.URL.createObjectURL(blob);  
  23.           // 这里的文件名根据实际情况从响应头或者url里获取  
  24.           const a = document.createElement('a');  
  25.           a.href = blobUrl;  
  26.           a.download = fileName;  
  27.           a.click();  
  28.           window.URL.revokeObjectURL(blobUrl);  
  29.       }  
  30.     }  
  31.     xhr.send();  
  32.   }  
  33. }  
  34.   
  35. // 获取url中需要的数据  type  1: 获取文件名  2:获取后缀  3:获取文件名+后缀  4:获取文件前缀  
  36. export function urlFile(url, type) {  
  37.   let filename = url.substring(url.lastIndexOf('/') + 1)  
  38.   switch (type){  
  39.       case 1: return filename; break;  
  40.       case 2: return filename.substring(filename.lastIndexOf(".") + 1); break;  
  41.       case 3: return filename.substring(0, filename.lastIndexOf(".")); break;  
  42.       case 4: return url.substring(0, url.lastIndexOf('/') + 1)  
  43.   }     
  44. }  

 

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")  

 

docker自动导入镜像

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

vi /sh/scp-docker.sh

#### 同步远程的docker镜像自动装载

C#代码
  1. cd /data/backup &&  
  2. scp root@172.16.207.22:/data/backup/* ./ &&  
  3. docker stop nginx-nodejs-redis:v2b &&  
  4. docker rm nginx-nodejs-redis:v2b &&  
  5. docker stop jenkins-rsync:v2b &&  
  6. docker rm jenkins-rsync:v2b &&  
  7. docker rmi nginx-nodejs-redis:v2b &&  
  8. docker rmi jenkins-rsync:v2b &&  
  9. docker image load -i jenkins-rsync-v2b.tgz &&  
  10. docker image load -i nginx-nodejs-redis-v2b.tgz &&  
  11. rm -rf /data/apps &&  
  12. mkdir -p /data/apps/nginx/htdocs &&  
  13. mkdir -p /data/apps/redis/htdocs &&  
  14. mkdir -p /data/apps/rsync/www &&  
  15. mkdir -p /data/apps/nodejs/htdocs/nest/KTM/dist &&  
  16. mkdir -p /data/apps/nodejs/htdocs/nest/KTM/public &&  
  17. mkdir -p /data/apps/nodejs/htdocs/nest/do_nest/public/www &&  
  18. mkdir -p /data/apps/nodejs/htdocs/nest/other &&  
  19. docker run \  
  20.     -u root \  
  21.     -p 80:80 \  
  22.     -p 8080:80 \  
  23.     -p 3000:3000 \  
  24.     -p 6379:6379 \  
  25.     -v /data/apps/nginx/htdocs:/data/nginx/htdocs \  
  26.     -v /data/apps/redis/htdocs:/data/redis/htdocs \  
  27.     -v /data/apps/rsync:/data/rsync \  
  28.     -v /data/apps/nodejs/htdocs/nest/KTM/dist:/data/nodejs/htdocs/nest/KTM/dist \  
  29.     -v /data/apps/nodejs/htdocs/nest/KTM/public:/data/nodejs/htdocs/nest/KTM/public \  
  30.     -v /data/apps/nodejs/htdocs/nest/do_nest/public/www:/data/nodejs/htdocs/nest/do_nest/public/www \  
  31.     -v /data/apps/nodejs/htdocs/nest/other:/data/nodejs/htdocs/nest/other \  
  32.     --privileged=true \  
  33.     --name=nginx-nodejs-redis-v2b \  
  34.     -d --restart=always nginx-nodejs-redis:v2b &&  
  35. docker run -p 4440:8080 -p 5000:5000 -p 8730:873 \  
  36.     -u root \  
  37.     --name=jenkins-rsync-v2b \  
  38.     --privileged=true \  
  39.     -v /etc/localtime:/etc/localtime \  
  40.     -v /data/apps/jenkins_home:/data/jenkins \  
  41.     -v /data/apps/rsync/www:/data/rsync/www \  
  42.     -d --restart=always jenkins-rsync:v2b  

### 重启定时器服务

chmod 755 /sh/scp-docker.sh

systemctl restart crond

### 编辑和查看定时器配置

crontab -e

crontab -l

### 每天的2:10重启smb

10 2 * * * /sh/scp-docker.sh

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

查看某个容器的详细信息

docker inspect 657f23bba0c6

进入默认容器的配置文件目录

C#代码
  1. cd /var/lib/docker/containers/657f23bba0c6ddc002c0b2f57c23edd36be742f9777f5ed9b755538085c419b0  

我们将要修改的文件就是config.v2.json和hostconfig.json

修改config.v2.json

调出冒号命令,输入如下(这里注意,shift+:),%!python -m json.tool

====================================

C#代码
  1. "MountPoints": {  
  2.     ...,  
  3.     "/data/rsync": {  
  4.         "Destination""/data/rsync",  
  5.         "Driver""",  
  6.         "Name""",  
  7.         "Propagation""rprivate",  
  8.         "RW"true,  
  9.         "SkipMountpointCreation"false,  
  10.         "Source""/data/apps/rsync",  
  11.         "Spec": {  
  12.             "Source""/data/apps/rsync",  
  13.             "Target""/data/rsync",  
  14.             "Type""bind"  
  15.         },  
  16.         "Type""bind"  
  17.     }  
  18. }  

 

修改hostconfig.json

调出冒号命令,输入如下(这里注意,shift+:),%!python -m json.tool

C#代码
  1. "AutoRemove"false,  
  2. "Binds": [  
  3.     "/data/apps/nginx/htdocs:/data/nginx/htdocs",  
  4.     "/data/apps/redis/htdocs:/data/redis/htdocs",  
  5.     "/data/apps/nodejs/htdocs/nest/other:/data/nodejs/htdocs/nest/other",  
  6.     "/data/apps/nodejs/htdocs/nest/do_nest/public/www:/data/nodejs/htdocs/nest/do_nest/public/www",  
  7.     "/data/apps/nodejs/htdocs/nest/KTM/dist:/data/nodejs/htdocs/nest/KTM/dist",  
  8.     "/data/apps/nodejs/htdocs/nest/KTM/public:/data/nodejs/htdocs/nest/KTM/public",  
  9.     "/data/apps/rsync:/data/rsync"  
  10. ],  

 先关闭docker服务

C#代码
  1. systemctl start docker  
  2. systemctl stop docker  
  3. systemctl stop docker.socket  
  4. systemctl enable docker.service  

 

 

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  

 

SQL代码
  1. insert into mysql.user(Host,User,Password) values ("%","admin",password("cnmo"));  
  2.   
  3. CREATE USER 'admin'@'localhost' IDENTIFIED BY 'cnmo';  
  4. GRANT privileges ON *.* TO 'admin'@'localhost';  
  5. GRANT ALL privileges on *.* to 'admin'@'localhost' identified by 'cnmo';  
  6. FLUSH PRIVILEGES;  

 更新用户密码

SQL代码
  1. use mysql # 连接权限数据库  
  2. update user set password=password('521'where user='root' and host='localhost'; # 改密码  
  3. flush privileges; # 刷新权限  

 

 MYSQL5.5支持utf8mb4,MYSQL5.1并不支持“utf8mb4”。

当连接数据库时 , 如果指定了utf8mb4 , 那么会出现的错误代码为:

Error 1115: Unknown character set: 'utf8mb4'

会出现utf8mb4不兼容的情况。

 

所以如果想使用utf8mb4存储表情emoji字符 , 请尽快升级

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