分类目录归档:运维小结

ssh远程执行命令状况解决


SSH是Linux下进行远程连接的基本工具,我们可以用它来完成远程操作。
ssh sirian@192.168.1.101 "free -m"

默认情况下,当你执行不带命令的ssh连接时,会使用Bash的interactive + login shell模式。会登录到远程服务器上,服务器为你分配一个TTY,并运行了一个login shell。比如"/bin/bash", 在/etc/passwd中可以看到对应用户登录后执行的shell会话。

但是当通过ssh在远程主机上执行命令时,会使用Bash的non-interactive + non-login shell模式。并不会为这个远程会

Read more

jenkins中nohup后台执行问题解决


在jenkins通过Execute shell执行"nohup you_command &",启动后台服务,经常遇到以下问题:

问题一:job执行完之后启动的服务同时关闭了
解决:
在Execute shell中添加BUILD_ID=DONTKILLME(其实是任何内容都可以,仅需要改变原有的BUILD_ID)
或者
把nohup启动命令写入shell脚本中,在脚本中添加BUILD_ID=DONTKILLME亦可以

问题二:使用nohup+&执行命令,但是日志打印到jenkins页面上,无法打印到服务上
解决:
nohup指定输出的文件路径,比如:
nohup pyth

Read more

数据库的奇异事件


现象:
mysql数据库老用户o_nj_2016回收,应用采用新用户octopus_nc访问.把o_nj_2016的权限全部去掉后,报错如下:
Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: execute command denied to user 'o_nj_2016'@'%' for routine 'octopus.getChildList'
检查了应用中,并没有再使用"o_nj_2016"去连数据库。
1.添加了octopus的权限后,功能正常
2.修改o_nj_2016的密码为随机密码,功能正常

Read more

跨域问题解决方案


跨域问题在域名和网站多起来的情况下,经常会遇到。比如从A应用的页面提交数据到B应用中,解决的方法就是在B应用中添加跨域支持。 比如在tomcat应用中,可以采用拦截器的方式进行:
1、在工程lib下添加:
cors-filter-2.4.jar 和 java-property-utils-1.9.1.jar
2、在web.xml中添加:

注意:请求的header和Method一定要在你supported的范围内

补充:
cors.allowOrigin最好不要用,而是配置好你网站的所有访问的域名,比如:http://a.b.com,https://a.b.com,http://192.

Read more

brew、yum、apt


yum和apt-get用法及区别

linux系统基本上分两大类:
1.RedHat系列:Redhat、Centos、Fedora等,使用yum yum install gcc -y
2.Debian系列:Debian、Ubuntu等,使用apt-get
sudo apt-get install gcc

Mac系统:
Homebrew,Homebrew简称brew brew install gcc

Read more

用户执行命令提示没有权限的解决


普通用户crontab -e增加定时任务或者su root切换用户失败,提示"permission denied"或者"authentication failure",有可能具体的命令'S'位权限

使用命令:
chmod u+s crontab
chmod u+s su
可以解决!

特殊权限有三种:--s--s--t;
如果原来有x权限,则用小写s或者t,原来没有x权限则用大写S或者T
suid s(有x) S 4 用户对应的权限位(用户对应的3位上)
sgid s(有x) S 2 用户组对应的权限位(用户组对应的3位上)
sticky t(有x) T 1 其他用户对应

Read more

DevOpsSRE必备技能清单


这个列表并非详尽无遗,只是列举了技术基础、必须知道的技能和一些随机的想法。可以用它们作为一个清单来评估你自己或其他人,或者为下一次面试 DevOps/SRE(Site Reliability Engineers,网站可靠性工程师)工作做准备。补充下,这个清单是比较个人的想法。

免责声明

这个清单由 Sahil Sharma 和作者共同完成。我们已经发布了它的第一个版本( DevOps 和网站可靠性工程师必备技能清单)。本文是最新的版本更新。

下一步是什么?更了解 DevOps 生态系统:

  1. 应该掌握 *nix 系统并且很好地理解 Linux 发行版的工作原理。为产品设置选择一个操作系统。不需要

Read more

sed碰到grep报错“No such file or directory”


grep得到结果正常:
$ grep -r "189.1" .
./pc/filter-test.properties:flume.host.master=120.27.189.1
./pc/filter-test.properties:flume.host.slave=120.27.189.1
./base/filter-test.properties:flume.host.master=120.27.189.1
./base/filter-test.properties:flume.host.slave=120.27.189.1

sed进行修改就报错:
$ sed -i 's/12

Read more

Tomcat的工作模式和运行模式


(1)工作模式
Tomcat作为servlet容器,有三种工作模式:

1、独立的servlet容器,servlet容器是web服务器的一部分;
2、进程内的servlet容器,servlet容器是作为web服务器的插件和java容器的实现,web服务器插件在内部地址空间打开一个jvm使得java容器在内部得以运行。反应速度快但伸缩性不足;
3、进程外的servlet容器,servlet容器运行于web服务器之外的地址空间,并作为web服务器的插件和java容器实现的结合。反应时间不如进程内但伸缩性和稳定性比进程内优;
进入Tomcat的请求可以根据Tomcat的工作模式分为如下两类:

Read more

Apache-httpd代理的问题


A机器上调用外网地址可以访问
A机器上调用内网地址不可访问 {"shopCode":"0003","shopMsg":"请求IP没有授权"}
B机器上调用A内网地址不可访问 {"shopCode":"0003","shopMsg":"请求IP没有授权"}
B机器上调用A外网地址不可访问 {"shopCode":"0003","shopMsg":"请求IP没有授权"}

经过对方确认请求的地址为我方内网ip地址

推测对方接口应该是提取了X-Forwarded-For的值

方案1:对方接口修改为一般获取客户端的IP地址的方法request.getRemoteAddr();
方案2:为ng

Read more