随笔分类 - CentOS服务器
CentOS服务器环境搭建系列
摘要:linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行
crontab每分钟执行一次,但5秒以上才有更新数据,有时候一分钟可能跑不完上一个进程,需要先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程(有没有在都执行杀进程的命令)才运行,超过20秒没有执行完成就判断为假死异常了,需要删掉再继续运行。这样各种情况都考虑到了。
阅读全文
摘要:centos通过yum快速安装JDK1.8
检索1.8的列表:
yum list java-1.8*
安装1.8.0的所有文件:
yum install java-1.8.0-openjdk* -y
出现 Complete!表示安装完成
使用命令检查是否安装成功:
#java -version
不需要对path进行手动设置,已自动设置好了
yum install 了之后,java 是默认下载到 /usr/lib/jvm/ 这个目录下。
# find / -name 'java'
其中启动命令需要用到的两个是:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-3.b14.el6_9.x86_64/bin/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-3.b14.el6_9.x86_64/jre/lib/ext
阅读全文
摘要:crontab运行python不生效,但是手动执行正常的问题和解决方案
linux默认装的是python2.7,安装了其他版本后直接执行没问题,但在crontab里执行不了,需要使用全路径。
使用 whereis python 可以查看python对应版本的执行全路径
阅读全文
摘要:Linux出现You have new mail in /var/spool/mail/root提示,关闭邮件提示的解决方案
有的时候敲一下回车,就出来You have new mail in /var/spool/mail/root的提示。
原因是Linux系统经常会自动发出一些邮件来提醒用户系统中出了哪些问题(收件箱位置:/var/mail/),比如crontab里面的脚本命令执行错误了(sh文件名,python命令没有使用全路径,没有使用后台运行nohup命令等问题导致无法正常执行的报错)。
LINUX会定时查看各种状态做汇总,每经过一段时间会把汇总的信息发送到root的邮箱里。
一般这种情况mail的内容就只是一些正常的系统信息或者是比较重要的错误报告。
centos默认安装有sendmail的,可以使用mail命令查询(要退出时输入q加回车)
如果安装了mutt可以用mutt命令查看mail的内容,没有装用系统命令:cat /var/spool/mail/root查看。
阅读全文
摘要:Linux查看系统当前登录用户的命令,top命令看到users有多个用户登录
作为系统管理员,top命令看到users有多个用户登录,会需要查看下是否被黑客进入了。
用who w users 命令查了,原来top命令出来的多个用户都是root,IP都是同一个,原因是网络不稳定,经常断开自动重连了导致的。
阅读全文
摘要:Linux服务器用postfix 发送邮件延迟 阻塞 被接收方拒绝等问题
postfix如何设置发送邮件延迟通知
1 */1 * * * /bin/bash /home/delete_postfix.sh
加了个定时器,每小时清理一次发送失败的邮件队列了,这样阻塞最多也就阻塞一个小时了
sendmail如果有信件因故延迟发送,每4个小时就会给发送者发信提示信件延迟发送。
postfix能不能设置呢?
在main.cf中设置:
delay_warning_time = 4
因为考虑到信件流量的问题,postfix缺省不发送通知。
阅读全文
摘要:Java执行shell脚本并返回结果两种方法的完整代码
简单的是直接传入String字符串,这种不能执行echo 或者需要调用其他进程的命令(比如调用postfix发送邮件命令就不起作用)
Runtime.getRuntime().exec(shell);
执行复杂的shell建议使用String[]方式传递(对外可以封装后也传入String字符串)。
Process process = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c",shStr},null,null);
阅读全文
摘要:Linux中用postfix搭建邮件服务器实战详解
postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。
Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性,因此它是免费的。
postfix的产生是为了替代传统的sendmail。相较于sendmail,postfix在速度,性能和稳定性上都更胜一筹。
现在主流邮件服务都在采用postfix. 当需要一个轻量级的的邮件服务器时,postfix也是一种选择。
常见的邮件服务器软件:
sendmail:性能好,设置复杂,适合老手
qmail:体积小260+k ,模块化。需要做二次开发,适合对邮件性能有要求的
postfix:前身是sendmail,postfix原本是sendmail里面的一个模块,红帽6默认安装好postfix
zmailer:近几年才出来的邮件
coremail:国内做的最好的商业平台,运行在linux上
要用java调用shell命令发送邮件请看本人另外一篇博客:
Java执行shell脚本并返回结果两种方法的完整
阅读全文
摘要:https申请证书并部署到网站流程,浏览器验证证书流程
1、生成一对秘钥,设公钥为pubk1,私钥为prik1
2、假设发布的网站地址为https://www.example.com
3、生成一个CSR文件(Cerificate Signing Request),该文件内容包括: pubk1,网站地址,以及营业执照等信息,然后将该文件发给CA机构
4、CA机构收到CSR文件后,进行审核,主要检查网站地址的拥有者是否是证书的申请者
5、审核通过后,CA机构生成一对秘钥,假设采用ECDSA签名算法,公钥为pubk2,私钥为prik2。用prik2对CSR文件进行签名得到签名值sigVal,将sigVal附在CSR文件后面形成证书文件caFile,caFile中还要添加CA机构的信息,如: 签名算法,CA机构名称等
6、将证书文件caFile放到网站服务器对应目录下
阅读全文
摘要:linux下的CPU、内存、IO、网络的压力测试
要远程测试其实很简单了,把结果放到一个微服务里直接在web里查看就可以了,或者同步到其他服务器上
一、对CPU进行简单测试:
1、通过bc命令计算特别函数
阅读全文
摘要:让网站永久拥有HTTPS - 申请免费SSL证书并自动续期 Let’s Encrypt
为什么要用HTTPS
网站没有使用HTTPS的时候,浏览器一般会报不安全,而且在别人访问这个网站的时候,很有可能会被运营商劫持,然后在网站里显示一些莫名其妙的广告。
有HTTPS的时候,通俗地讲所有的数据传输都会被加密,你和网站之间的数据交流也就更加安全。
阅读全文
摘要:在具体的做法上,一般分为DNS劫持和HTTP劫持。
处理办法: 1、先对外网做检测,上报被劫持的情况。5、当然,最终,根本解决办法是使用HTTPS,不过这个涉及到很多业务的修改,成本较高。如果劫持比例小,也许通过适当的补救做法会更好。
各种劫持的手段都有:
1、直接返回一个带广告的HTML;
2、在原html中插入js,再通过js脚本安插广告;
3、iframe展示原来正常网页。
阅读全文
摘要:Let'sEncrypt 免费通配符/泛域名SSL证书添加使用教程
通配符证书一般还是比较贵的一般最便宜的通配符证书5、60美元一年,只不过Let'sEncrypt的有效期是3个月,对于一般用户来说基本没差别。
LNMP 1.5已经添加了对通配符证书的支持,生成通配符证书和Let'sEncrypt平常SSL证书命令有些差异(通配符证书命令是 lnmp dnsssl 域名dns服务商简称,普通证书是lnmp ssl add),最好是使用域名DNS服务商的API,这样才能实现自动续期。
阅读全文
摘要:数据库主从同步相关问题
主从可以监控 还有一致性检查那些
主从同步有些语句 可能有影响
看主从配置的模式 有混合模式
主从同步是靠日志同步
可以用以下三种模式来实现:
– 基于SQL语句的复制(statement-based replication, SBR),
– 基于行的复制(row-based replication, RBR),
– 混合模式复制(mixed-based replication, MBR)。
延迟的话问题较小,数据不一致得处理会麻烦点
阅读全文
摘要:网站https证书SSL证书相关
二级域名可以申请证书来使用,主域名申请的单域名证书,二级域名不在https加密保护内,通配符证书可以保护主域名下所有的二级子域名,二级域名等于和主域名使用的同一张证书。
一、SSL证书概况:
1、SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本,因为配置在服务器上,也称为SSL服务器证书。
2、遵守SSL协议,由受信任的数字证书颁发机构CA(如GlobalSign),在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。
阅读全文
摘要:Linux下几种重启Nginx的方式,找出nginx配置文件路径和测试配置文件是否正确
目录在/etc/ngnix/conf.d下
找出nginx配置文件路径和测试配置文件是否正确
# /usr/sbin/nginx -t
几种重启Nginx的方式:
service nginx restart
/etc/init.d/nginx restart
systemctl restart nginx
阅读全文
摘要:crontab 在指定时间范围每隔2小时执行一次和指定时间执行,下面实例实现了:10-23点每两个小时执行一次,2点执行一次,分钟依次是1 2 3 ,没有24点的,晚上12点是0点
注:*代表所有的取值范围内的数字,"/"代表每的意思,"/2"表示每2个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。
阅读全文
摘要:Linux查看磁盘空间大小命令
df -hl
df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小
du -sh [目录名] 返回该目录的大小
du -sm [文件夹] 返回该文件夹总M数
du -h [目录名] 查看指定文件夹下的所有文件大小(包含子文件夹)
更新详细命令文档:
df --help
du --help
查看硬盘的分区:fdisk -l
阅读全文
摘要:重启防火墙命令
#systemctl restart iptables.service
查看端口号
#iptables -L
首先修改配置文件 vi /etc/ssh/sshd_config 增加新端口号
PermitRootLogin yes
Port xxxxx
#Port 22
保存退出(一般需要先保留22,测试新端口可以连接后再回来注释掉)
执行重启防火墙命令:systemctl restart sshd.service
阅读全文
摘要:Maven依赖中的scope详解 项目中用了在eclipse里面用maven install可以编译成功,到服务器上用命令执行报VM crash错误,原因是test代码提交上去了,但没有对应的junit包导致的
解决办法:1.服务器上编译的时候排除掉test代码。2.把改成
阅读全文