linux脚本

docker-compose下的java应用启动顺序两部曲之二:实战

杀马特。学长 韩版系。学妹 提交于 2019-12-03 10:10:45
上篇回顾 本文是《docker-compose下的java应用启动顺序两部曲》的终篇,在上一篇 《docker-compose下的java应用启动顺序两部曲之一:问题分析》 中,我们以SpringCloud环境下的注册中心和业务服务为例,展示了docker-compose.yml中 depends_on 参数的不足:即只能控制容器创建顺序,但我们想要的是eureka服务就绪之后再启动业务服务,并且docker官方也认为 depends_on 参数是达不到这个要求的,如下图所示: 针对上述问题,docker给出的解决办法是使用 wait-for-it.sh 脚本来解决问题,地址:https://docs.docker.com/compose/startup-order/ ,如下图: 什么是wait-for-it.sh wait-for-it.sh 脚本用来访问指定的地址和端口,如果收不到响应就等待一段时间再去重试,直到收到响应后,再去做前面指定好的命令,如上图红框所示 ./wait-for-it.sh db:5432 -- python app.py 的意思是:等到 db:5432 这个远程访问能够响应的时候,就去执行 python app.py 命令 wait-for-it.sh文件的链接: https://raw.githubusercontent.com/zq2599/blog

docker-compose下的java应用启动顺序两部曲之二:实战

♀尐吖头ヾ 提交于 2019-12-03 10:09:16
上篇回顾 本文是《docker-compose下的java应用启动顺序两部曲》的终篇,在上一篇 《docker-compose下的java应用启动顺序两部曲之一:问题分析》 中,我们以SpringCloud环境下的注册中心和业务服务为例,展示了docker-compose.yml中 depends_on 参数的不足:即只能控制容器创建顺序,但我们想要的是eureka服务就绪之后再启动业务服务,并且docker官方也认为 depends_on 参数是达不到这个要求的,如下图所示: 针对上述问题,docker给出的解决办法是使用 wait-for-it.sh 脚本来解决问题,地址:https://docs.docker.com/compose/startup-order/ ,如下图: 什么是wait-for-it.sh wait-for-it.sh 脚本用来访问指定的地址和端口,如果收不到响应就等待一段时间再去重试,直到收到响应后,再去做前面指定好的命令,如上图红框所示 ./wait-for-it.sh db:5432 -- python app.py 的意思是:等到 db:5432 这个远程访问能够响应的时候,就去执行 python app.py 命令 wait-for-it.sh文件的链接: https://raw.githubusercontent.com/zq2599/blog

shell函数

易管家 提交于 2019-12-03 09:52:46
shell函数 为什么要使用shell函数 linux别的的作用 [root@lamp ~]# alias alias cp='cp -i' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias vi='vim' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' 设置别名与使用 [root@lamp ~]# alias cdone='cd /' [root@lamp ~]# alias alias cdone='cd /' alias cp='cp -i' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias vi='vim' alias which='alias | /usr/bin/which --tty-only --read-alias --show

git一键push至github脚本

这一生的挚爱 提交于 2019-12-03 09:44:14
######################################################################### # File Name: push.sh # Author: tuzhuo # mail: xmb028@163.com # Created Time: 2019年09月11日 星期三 19时56分03秒 ######################################################################### #!/bin/bash if [ $# -eq 0 ] then pushmessage=`date +%Y-%m-%d` else pushmessage="$*" fi #pushmessage=`date +%Y-%m-%d` echo ${pushmessage} git add -A git commit -m "${pushmessage}" git push origin master 脚本使用说明: 通常的用法是直接命令回车(脚本环境兼容windows和linux的git): bash push.sh 该脚本默认的push信息是提交当天的年月日,eg:2019-10-1; 若要自定义git的push信息,只需要: bash push [message] eg: bash

批量分发密钥脚本

妖精的绣舞 提交于 2019-12-03 08:03:41
1.批量分发秘钥脚本 #!/bin/bash #请耐心等待!!!! cat<<eof ******************************************** 请输入你的网段,查看可用网段. 例:10.0.0 请耐心等待! ******************************************* eof read -p "Please enter the network segment where you want to distribute the secret keys : " ip read -s -p "Please enter your local password :" pass for i in $ip.{1..253} do { ping -c 1 $i &>/dev/null if [ $? -ne 0 ]; then echo $i &> /dev/null else echo $i > /tmp/ip.txt #先下载 yum install sshpass #创建秘钥 # ssh-keygen . /etc/init.d/functions                yum install sshpass -y *> /dev/null sleep 10s for ipadd in `cat /tmp/ip.txt` do

批量分发密钥脚本

孤人 提交于 2019-12-03 08:02:38
#!/bin/bash #请耐心等待!!!! cat<<eof ******************************************** 请输入你的网段,查看可用网段. 例:10.0.0 请耐心等待! ******************************************* eof read -p "Please enter the network segment where you want to distribute the secret keys : " ip read -s -p "Please enter your local password :" pass for i in $ip.{1..253} do { ping -c 1 $i &>/dev/null if [ $? -ne 0 ]; then echo $i &> /dev/null else echo $i > /tmp/ip.txt #先下载 yum install sshpass #创建秘钥 # ssh-keygen . /etc/init.d/functions for ipadd in `cat /tmp/ip.txt` do sshpass -p$pass ssh-copy-id -i ~/.ssh/id_rsa.pub root@$ipadd -o

在Linux上实现Python调用C语言函数

守給你的承諾、 提交于 2019-12-03 04:25:38
一般思路 Python中内置ctypes库,需调用c编译成的.so文件来实现函数调用。 假设我们所需调用的c文件名为test.c,文件里有我们需要的函数func(x,y). 将.c文件编译成 .so文件 gcc -fPIC -shared test.c -o test.so 运行后会看到有 test.so 文件生成。 在Python中导入C文件 在当前目录下打开Python import os from ctypes import * p = os.getcwd() + '/test.so’ #表示.so文件的绝对路径,如果你没在当前路径打开python则可能需要修改 f = CDLL(p) #读取.so文件并赋给变量f 这时如果没报错,就说明导入该.so文件成功了,可以调用脚本中的函数。 调用函数 # 变量为整数 a = 3 b = 4 f.func(a, b) #该步即运行函数func(x,y) # 变量为浮点数 c = c_float(5.5) d = c_float(6.66) f.func(c, d) 以上便为调用C中函数的简单形式。 复杂情况 有时,在我们需要的C脚本中,调用了其他的库,或者也同时调用了以 .h形式被调用的同级别的C脚本。这种情况需要以下步骤: 将所有.c文件编译为 .o文件 该步骤就按你的需求去编译生成,但记得加入 -fPIC , 编译后生成一个或多个

QT执行shell脚本或者执行linux指令

回眸只為那壹抹淺笑 提交于 2019-12-03 04:24:38
由于我在做linux下的QT开发,有时候会用到shell脚本的辅助,但是需要QT运行shell脚本并获取执行结果,今天给大家分享下我的技巧,废话少说直接上代码: //执行shell指令或者shell脚本的方法 QString Common::executeLinuxCmd(QString strCmd) { QProcess p; p.start("bash", QStringList() <<"-c" << strCmd); p.waitForFinished(); QString strResult = p.readAllStandardOutput(); return strResult; } //实例 QString strResult1 = executeLinuxCmd("sudo sh /home/test.sh"); QString strResult2 = executeLinuxCmd("cat /etc/hostname"); 大家根据自己的业务需求去处理strResult1和strResult2,相信我的代码很清晰了吧!!!    来源: https://www.cnblogs.com/xupeidong/p/11777031.html

百度下载给的termux是个坑

匿名 (未验证) 提交于 2019-12-03 00:41:02
termux有两个版本,0.32以及0.64。百度提供0.32的下载,太坑爹。谷歌则是0.64的下载。32版uname -m识别为armv8l,绝对影响你进行其它linux的部署。通过atilo脚本会部署armfhp分支的linux。执行容器直接报错“proot info: vpid 1: terminated with signal 11”。原本我以为是termux的bug,去折腾部署脚本以及rpm和yum去强制指定arch。今天另一台机从google下载termux,uname识别为aarch64,才发现给百度坑了。 百度恶心的还有手机百度主页全是为了流量的无聊内容,安全下载每次弹出助手PP乘机让你错点下载安装。 原文:https://www.cnblogs.com/bbqzsl/p/9322743.html

Centos 7初始化脚本

匿名 (未验证) 提交于 2019-12-03 00:41:02
今天跟大家分享一个我自己写的Linux初始化脚本,自认为写的不是很好。希望看到这篇文章的你,能暂时停留下你的脚步,给些修改意见,或者有什么需要补充的地方都可以提出来,大家共同进步,谢谢! 此脚本主要功能:1、关闭一些用不到的服务;2、关闭selinux;3、创建分区、格式化、挂载;4、设置一个ip命令别名;5、创建一个普通用户,并禁止root用户登陆;6、修改limit参数;7、配置时间同步;8、修改ssh端口号;9、初始化firewalld防火墙。 #!/bin/bash #modify some service demeon # 关闭不需要用到的一些服务 systemctl disable acpid systemctl disable ip6tables systemctl disable mcelogd systemctl disable mdmonitor systemctl disable netfs systemctl disable nfslock systemctl disable openct systemctl disable postfix systemctl disable rpcbind systemctl disable rpcgssd systemctl disable rpcidmapd systemctl disable auditd