查看linux系统整体的IO使用情况
通过iostat工具查看系统整体的IO压力情况,包括:
- 磁盘每秒IO读、写请求数;
- 磁盘每秒IO读、写请求大小;
- 磁盘平均IO使用率;
- 磁盘平均IO处理延时等;
今天,是Linux回炉的第八十三天
shell
docker
文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。
资源隔离:系统资源,像 CPU 和内存等可以分配到不同的容器中。
网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和 IP 地址。
日志记载
交互式 shell
安装
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo 网页链接
yum install docker-ce docker-ce-cli containerd – An industry-standard container runtime with an ... -y
systemctl start docker && systemctl enable docker

docker pull centos(我觉得晚上12点以后网速还可以,直接下载镜像我一次就OK了)
#!/bin/bash
while true
do
AA=`docker images|wc -l`
echo "docker执行的数量:"$(($AA-1))
BB=`docker ps|awk -F ':' '{print $2}'|awk '{print $2$3$4$5}'|sed '/^$/d'`
HH=`docker info|grep Running|awk -F ':' '{print $2}'`
if [ $HH -ne 0 ]
then
for n in $BB
do
echo "显示正在执行的命令:" $n
done
else
exit
fi
CC=`docker ps|wc -l`
DD=$(($CC-1))
read -t 5 -p "请选择一个docker日志,如若不选5秒后自动跳过,请从{1到$DD}中选择一个:" a
EE=`docker ps -a|awk '{print $1}'|grep -v CONTAINER|sed -n "$a"p`
docker logs $EE
read -t 5 -p "是否删除docker进程,如若不选5秒后自动跳过,请从(1到$DD)中选择一个:" a

EE=`docker ps -a|awk '{print $1}'|grep -v CONTAINER|sed -n "$a"p`
docker kill $EE
sleep 5
done
今天,是Linux回炉的第六十二天
shell
sentinel
它是一款我认为的高可用的redis自带的监控软件,主要监控主redis,当主redis挂了,slave自动升级成主库
用shell模拟sentinel的大概的监控过程
1.是master的redis数据库
#!/bin/bash
while true
do
AA=`netstat -lntup|grep 6379|awk '{print $7}'|awk -F '/' '{print $1}'`
cat /apps/redis/etc/redis.log|grep $(date +%F|awk -F '-' '{print $3}')|tail -n 1 >10.txt
if [ -n $AA ]
then
BB=`ping -c 5 192.168.163.136|sed -n 9p|awk -F ',' '{print $2}'|awk '{print $1}'`
CC=`cat 10.txt |awk -F '*|#' '{print $2}'|awk -F ':' '{print $2}'|awk '{print $2}'`

if [ $BB == 5 ]
then
echo "网络ping正常"
if [ $CC == succeeded ]
then
echo "slave正常"
echo "情况正常`date +%F-"%H:%M:%S"`">10.txt
scp 10.txt root@192.168.163.136:/root/
else
echo "slave不正常"
fi
else
echo "网络不正常"
fi
else
echo "未检测到redis的master数据库"
fi
sleep 3600
done
………………………………
2.是slave的redis数据库
#!/bin/bash
while true
do
date +%F-"%H:%M:%S">11.txt
AA=`ls -lht 10.txt|awk '{print $8}'|awk -F ':' '{print $1$2}'`

CC=`cat 11.txt|awk -F '-' '{print $4}'|awk -F ':' '{print $1$2}'`
echo $AA
echo $CC
if [ "$AA" == "$CC" ]
then
echo "时间正常"
else
echo "时间不正常"
cd redis-5.0.10
redis-server redis.conf
cd /root
sed -i "sIPADDR=192.168.163.136IPADDR=192.168.163.135g" /etc/sysconfig/network-scripts/ifcfg-ens33 #为什么要修改IP地址,因为后端开发需要连接数据库,如果写了判断应该没问题,担心就是没写,运维不背锅
fi
sleep 3600
done
今天,是Linux回炉的第八十一天
shell
KVM
我的理解,如果网络边界有一个网闸(网闸的功能是端口一一映射的),面对网闸通行,因为,网闸一般都在网络边界,会有内外网访问系统地址不一样的情况,一般情况下会让开发对程序进行一个调试,简单的来说就是类似于tomcat的地址进行一个判断。

但是,我见到一个项目,它直接安装了两套tomcat,应对网闸,网闸外访问启动一个tomcat,网闸内访问,关闭一个tomcat在启动另一个,我看见后当时建议可以把两个tomcat的端口修改一下,同时启动,这样也可以解决网闸的问题,但是,实施方不听,我给他们点了个赞,就走了。
后面,想着可以安装一个虚拟化,通过虚拟化安装一个系统,然后在部署一套tomcat端口一样,只是IP地址不一样,IP地址可以通过DNS的方式略微改变,其实也可以的。
#!/bin/bash
while true
do
AA=`df -h|grep /dev/sdb|awk '{print $2}'`
BB=`df -h|grep /dev/sdb|awk '{print $4}'`
CC=`systemctl status libvirtd|sed -n 3p|awk '{print $3}'|sed s#(##g|sed s#)##g`
DD=`ps -ef|grep libvirtd|grep -v grep|awk '{print $2}'`
EE=`systemctl is-enabled libvirtd`
echo "原始硬盘大小:" $AA

echo "剩余硬盘大小:" $BB
if [ "$CC" == "running" ]
then
echo "目前KVM虚拟化运行正常"
else
if [ $DD ]
then
echo "KVM进程正常"
kill -9 $DD
else
echo "KVM未正常运行"
systemctl stop libvirtd
systemctl start libvirtd
if [ "$EE" == "enabled" ]
then
echo "开机自启动"
else
systemctl enable libvirtd
fi
fi
fi
sleep 5
done
最近接手的Java项目要交付了,为了避免一锤子买卖,我真是煞费苦心的研究了一番。
首先,加入了随机触发睡眠的代码,当然对业务不会有影响,只是随机睡眠5秒而已。

其次,加入了一个自定义的三方jar包,会随机生成动态类,初始化的时候使用Unsafe申请直接内存, 又不会触发OOM,这样的话分析堆内存是发现不了问题的。
最后,釜底抽薪的,将一个可执行的linux程序放到了resource目录,启动程序的时候用system运行它,输入jps、jmap、jconsole都会自动结束Java程序。
---------------------------------------
当然,这是我开的一个玩笑,客户是我朋友,不过呢,我要等他发现问题了,才帮他解决,不知道会有什么后果。
请我吃顿饭也可以,奶茶是坚决不喝的。
可是我有点担心啊,万一这家伙动真格的,可咋办呢!
作为一名老年程序员,你失眠过吗?
从得到上听了3个程序员应对睡眠问题的好方法:
1. 为睡眠和工作设置一个隔离
有一部分程序员晚上睡不好可能是因为还想着白天的工作上的事情。对于这种情况就需要给工作和睡眠设置一个有仪式感的隔离。可以是睡前出去散个步;冥想或者太极;泡泡澡,泡泡脚;看看书,听听书也不错。

这些有仪式感的事情都是隔离工作或者白天所做的事情的一个有效方法。这些都是为了提醒你的大脑:该睡觉了!
2. 试试放松反射
放松反射和应激放射相反,放松反射属于人的生理本能,它可以让人变得安静平和、血压降低。
方法如下:
躺在床上,闭上眼睛,大脑中默念某个词,比如:放松、安静、幸福等,记住不要停,一直持续10分钟左右。这中间你肯定会走神,但是没关系,走神了以后,你可以对自己说一句:哦,走神了,然后继续默念之前那个词。
3. 不要对睡眠有过高的预期
对睡眠有过高的预期会让自己压力倍增,导致更难以入睡。世界卫生组织公布的前100个人类健康杀手中并没有睡眠,可见睡眠不好并非什么大事儿。
美好的人或者事物,也能让我们压力骤减,快速进入梦乡。生活不易,大家保重自己。

今天,是Linux回炉的第八十八天
shell
k8s
简单的来说就是,k8s就是
Master 节点+Node 节点+Pod+ReplicaSet+Deployment+Service+Kube_proxy+etcd
Master 节点,我理解就是像VMware的vsphere client管理软件一样。
Node 节点,我的理解就是node节点就是计算节点
Pod我的理解是存放虚拟机的地方
ReplicaSet我的理解是控制pod里的虚拟机,具有添加(添加其实也要慎用,前提虚拟机系统部署环境是初始部署环境,我之前在添加虚拟机的时候,始终提示空间添加失败,其实第一次提示后就应该停止操作,但是,当时我还是试了一下,最终导致其他业务的oracle数据库组件丢失)、删除(删除更要慎用)
Deployment我的理解是迁移
Service我的理解是地址映射
Kube_proxy 我的理解是负载均衡
etcd我的理解数据库记录配置的数据
以上是我对k8s的概念的理解

在看书的过程中突然想到,本想通过history的命令和/var/log/message的方式监测系统运行的过程,结果发现,克隆远程登录的软件后所敲的命令,在非克隆的远程登录的软件上,查看只能从bash_history中查看,无法通过history命令查看
所以就此作罢了这种想法监测方法,然后只想到bash_history的方式进行比对,那些命令不能使用在该服务器上
但是,写的时候没考虑带用户的问题,因为,我觉得用history的命令会有滞后的风险
#!/bin/bash
while true
do
cat .bash_history |wc -l>2.txt
AA=`cat 2.txt`
BB=`cat .bash_history |wc -l`
if [ $AA == $BB ]
then
echo "命令无变化"
else
history>3.txt
fi
for (( i=1;i<=$AA;i++ ))
do
CC=`cat .bash_history|sed -n "$i"p`
for ((n=1;n<="`cat 4.txt|wc -l`";n++))

do
DD=`cat 4.txt|sed -n "$n"p`
echo "显示未被批准的命令被执行:" "$CC"|grep "$DD"
done
done
sleep 5
done
今天,是Linux回炉的第五十三天
通过shell监控负载均衡的后端web服务
haproxy的负载均衡
shell
#!/bin/bash
AA=`netstat -lntup|grep 80|awk '{print $7}'|awk -F '/' '{print $2}'`
BB=`ps -ef|grep haproxy|grep -v grep|awk '{print $1}'`
CC=`netstat -lntup|grep 80|awk '{print $7}'|awk -F '/' '{print $1}'`
while true
do
if [ $AA == 'haproxy' ]
then
echo "haproxy启动正常"
else
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.cfg
fi
for n in $(seq 136 137)
do
DD=`curl -I 网页链接 -n 1p|awk '{print $2}'`

if [ $DD == 200 ]
then
echo "web正常"
else
ssh root@192.168.163.$n systemctl stop httpd
echo "web应用,192.168.163.$n">1.txt
echo 192.168.163.$n"web已经关闭"
fi
EE=`ping -c 10 192.168.163.$n|sed -n 14p|awk -F ',' '{print $2}'|awk '{print $1}'`
if [ $EE == 10 ]
then
echo "网卡正常"
else
echo "网卡服务,192.168.163.$n">2.txt
echo 192.168.163.$n"网卡已经关闭"
fi
done
for n in $(seq 1 2)
do
FF=`find / -name $n.txt|wc -l`
if [ $FF == 0 ]
then
echo $n "web和网卡一切正常"
else
echo $n>>3.txt

GG=`find / -name 3.txt|wc -l`
if [ $GG == 2 ]
then
kill -9 $CC
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.cfg
else
HH=`find / -name 3.txt|cat 3.txt`
for n in $HH
do
II=`cat $n.txt|awk -F ',' '{print $1}'`
if [ $II == "web应用" ]
then
ssh root@`cat $n.txt|awk -F ',' '{print $2}'` systemctl restart httpd
find / -name 3.txt -exec rm -fr "{}" ;
>1.txt
elif [ $II == "网卡服务" ]
then
ping -c 4 `cat $n.txt|awk -F ',' '{print $2}'`
find / -name 3.txt -exec rm -fr "{}" ;
else
echo "一切正常"
find / -name 3.txt -exec rm -fr "{}" ;
>2.txt
fi
done
fi

fi
done
sleep 6
done
今天,是Linux回炉的第五十一天
Keepalived
管理VIP分发器
监测web服务器状态,可以漂移
看到这个我突然想到
现在架构、开发、网络、硬件,大家现在面对的一个新的问题我认为是并发量瞬间爆炸式的增长的问题,很可能是甲方的一个通知就开始了,没有一切准备的,怎么办?
我的第一反应就是keepalive,冷静下来以后,第一选项是keepalive+反向代理,如果现在让我去谈论的话,我会更倾向于后端处理过程中的读写压力问题。
我曾经问过一个哥们关于并发量的问题,他告诉可以通过填写验证码的方式进行访问,因为验证码输入的快慢是每个人的习惯和每个人的手速,可以一定时间控制瞬时并发量。
vrrp
我原来配置过两台三层交换机的vrrp,需要注意的就是生成树的问题,不然,有你意想不到的惊喜,广播风暴。

网络七层协议
物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
Keepalived可以工作在3,4,5层
第三层ICMP的方式测试
第四层是已端口
第五层是应用层
#!/bin/bash
while true
do
AA=`ipvsadm -Ln|grep -v TCP|grep -v Port|grep -v IP|wc -l`
if [ $AA == 0 ]
then
echo "LVS不正常"
ssh root@192.168.163.136 curl -I 网页链接 -n 1p|grep '200'>66.txt
for n in `cat 66.txt|awk '{print $2}'`
do
if [ $n == 200 ]
then
echo "GET正常"
else
echo "GET不正常,页面显示为:"$n
fi
done
else
echo "LVS正常"
fi
BB=`ip add|grep inet|grep -v inet6|grep ens33|awk '{print $2}'`

if [ "网页链接" == `echo $BB|awk '{print $1}'` ]
then
echo "网页链接网络正确"
if [ "网页链接" == `echo $BB|awk '{print $2}'` ]
then
echo "网页链接虚拟网络正常"
else
echo "虚拟网络不正常"
fi
else
echo "网络不正常"
fi
curl -I 网页链接 -n 1p|grep '200' >66.txt
for n in `cat 66.txt|awk '{print $2}'`
do
if [ $n == 200 ]
then
echo "GET正常"
else
echo "GET不正常,页面显示为:"$n
fi
done

sleep 6
done
今天,是Linux回炉的第二十八天
shell
今天领导让我去处理一个关于mysql被人远程破解连接的问题
于是我就在想到,是直接把这些IP地址kill好,还是放到防火墙策略里好呢
最后,我既放到策略里又kill掉了
#!/bin.bash
while true
do
BB=`systemctl status firewalld|grep Active|awk -F ':' '{print $2}'|awk '{print $2}'|sed s#(##g|sed s#)##g`
AA=`cat /var/log/mariadb/mariadb.log|grep Warning|awk '{print $6}'|sed s#'##g`
CC=`systemctl status iptables|grep Active|awk -F ':' '{print $2}'|awk '{print $2}'|sed s#(##g|sed s#)##g`
DD=`who|awk '{print $5}'|sed s#(##g|sed s#)##g`
EE=`arp|grep "00:50:56:c0:00:08"|awk '{print $1}'`
FF=`who|grep -wv $EE|awk '{print $2}'`
GG=`who|grep -wv $EE|awk '{print $5}'|sed s#(##g|sed s#)##g`

echo $BB
echo $CC
if [ $BB == 'dead' ]&&[ $CC == 'exited' ];
then
echo "firewalld已关闭并且iptables已经开启"
else
systemctl stop firewalld
systemcyl stop iptables
systemctl start iptables
fi
for n in $GG
do
iptables -A INPUT -s $n -j DROP
echo "已经加入防火墙了"
done
for n in $FF
do
kill -9 `ps -ef|grep $n|grep -v grep|awk '{print $2}'`
echo "已经删除其他ip登录的信息"
done
echo "查询到有远程连接数据库的ip:" $AA
for n in $AA
do
echo "已经关闭远程数据库的ip地址"
iptables -A INPUT -s $n -j DROP
done
sleep 5
done
今天,是Linux回炉第四十四天
shell
前段时间在办公室看见他们在统计访问量,一个哥们不停的打电话问系统开发,怎么一眼就能看见访问量的

因为,不是一个项目组的,我只是抬头看了看他,就没有然后了
这里以nginx为例,因为,我们生产环境有nginx,估计那个哥们应该也问了
IP
相同IP地址只被计算一次,网站优化
cat /usr/local/nginx/logs/access.log|awk '{print $1}'|uniq -c|wc -l
UV
独立访客,将每个独立上网电脑视为一位访客,访问您网站的访客数量。我这里是已每次展示的网页大小进行去重统计的
cat access.log|awk '{print $10}'|sort -r|uniq -c|wc -l
PV
访问量,即页面浏览量或者点击量,用户每次对网站的访问均被记录1次。用户对同一页面的多次访问,访问量值累计。我理解的有get,post等有一个算一个,展示我们设计的系统多少人喜欢访问
cat /usr/local/nginx/logs/access.log|awk '{print $6}'|awk -F '"' '{print $2}'|wc -l
最后,我们有一个系统,然后呢,在测试环境下什么问题都没有,一上生产环境,中间件大概每过一个礼拜就要死机一次,但是,并发量不是很大,可始终查不出原因,死机后,进程,端口都是在的,我一直在问,部署的时候是不是就像打补丁一样,不停的要安装插件和依耐包,导致哪个地方衔接有问题,直接覆盖安装了,需要清理的软件没有清理,他们说没有。

好吧,已经上线了,说什么都迟了
不过,后面,他们给出一个定时任务的脚本,我觉得还是蛮有想象的,因为当时,这个脚本是我审核的,我凭着理解,大概的写了一下,它主要是定时重启,脚本是直接kill -9进程,然后,重启,不管死不死机,抓进程,没有,就启动
#!/bin/bash
AA=`ps -ef|grep $(netstat -lntup|grep nginx|awk '{print $7}'|awk -F '/' '{print $1}')|grep -v root|wc -l`
DD=`netstat -lntup|grep nginx|awk '{print $7}'|awk -F '/' '{print $1}'` #nginx
if [ $AA == 1 ];
then
kill -9 $DD
echo "已经关闭nginx"
sleep 4
/usr/local/nginx/sbin/nginx
echo "已经打开nginx"
else
echo "没有找到nginx进程"
/usr/local/nginx/sbin/nginx
DD=`netstat -lntup|grep nginx|awk '{print $7}'|awk -F '/' '{print $1}'`
echo $DD

fi
今天,是Linux回炉的第六十七天
shell
ssh
通过判断服务是否正常,是否允许用户登录
#!/bin/bash
while true
do
AA=`netstat -lntup|grep httpd|wc -l`
BB=`ps -ef|grep httpd|grep -v grep|wc -l`
CC=`date|awk '{print $4}'|awk -F ':' '{print $1}'`
DD=`cat /var/log/secure|grep password|awk -F ':' '{print $4}'|awk '{print $6}'`
EE=`who|awk '{print $2}'`
who|awk '{print $2}' >>11.txt
if [ $AA == 1 ]&&[ $BB == 6 ]
then
for n in $EE
do
if [ "`cat 11.txt|wc -l`" -le "1" ]
then
echo $n
else
if [ $n == tty1 ]
then
echo "系统自己登陆中"
else

kill -9 `ps -ef|grep $n|awk '{print $2}'`
fi
fi
done
>11.txt
else
echo "登陆的地址共计:"$DD
#FF=`arp|grep $(who|awk '{print $5}'|grep -v ^$|awk -F '(' '{print $2}'|awk -F ')' '{print $1}')|awk '{print $3}'`
for n in `who|awk '{print $5}'|awk -F '(' '{print $2}'|awk -F ')' '{print $1}'`
do
if [ `arp|grep $n|awk '{print $3}'` == "00:50:56:c0:00:08" ]
then
for n in $EE
do
GG=`who|grep $(arp|grep "00:50:56:c0:00:08"|awk '{print $1}')|awk '{print $2}'`
echo $GG
if [ "$GG" == "$n" ]

then
echo "正常系统登陆"
else
echo $n >>11.txt
cat 11.txt|grep -v $GG
for n in `cat 11.txt|grep -v $GG`
do
kill -9 `ps -ef|grep $n|awk '{print $2}'`
done
fi
done
>11.txt
fi
done
fi
sleep 5
done
马斯克一点都不伟大!他只是一个有野心的投资家!在投资界是最差劲的那种,投资之后会想办法赶走创始人的那种!特斯拉创始人是马丁·艾伯哈德(Martin Eberhard)和马克·塔彭宁(MarcTarpenning)看图二,马斯克利用创始人缺钱一步步投资拿到控股权!不想看到创世人台前风光想法赶走了他们,还说他们是可怜的发明家,还修改百科说自己是创始人!

Pay pal创始是Peter Thiel(彼得·蒂尔)和 Max Levchin(迈克斯·莱文),他抄袭Paypal弄了个X.com,打价格战,后来二者合并,卖给了eBay
马斯克这种投资人在创投界是最差劲的那种!
说好还不如马化腾!
而且特斯拉的专利数只有比亚迪的百分之一!
特斯拉没有什么是自己的东西,连吹嘘的车控软件也是基于Linux的延时系统!这就是经常出问题的关键!
今天,是Linux回炉的第七十九天
shell
KVM 虚拟化
我理解的KVM就是一个容器软件程序
首先,我个人理解的虚拟化分配内存,是需要考虑真机的在分配内存的时候,物理机8G的内存,建议只能分配7G给虚拟机,因为物理机也要有内存去跑虚拟程序
我们一个项目上使用了有一个非主流的虚拟化,它配置了私网地址和公网地址两个ip地址,导致我们部署在虚拟机的后端程序无法调用物理机的数据库,最后,把虚拟机的一个IP地址删除就可以了,我的理解就是类似于桥接模式的网络。

使用virsh命令配置网桥很方便,但br0上不会自动配置DNS,如果需要虚拟机上网需要自己添加DNS
virsh iface-bridge ens33 br0 --no-stp
echo 'DNS1=114.114.114.114' >> /etc/sysconfig/network-scripts/ifcfg-br0
重启网卡
桥接模式:就是将主机网卡与虚拟的网卡利用虚拟网桥进行通信。类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机IP地址需要与主机在同一网段,如果需要联网,则网关与DNS需要与主机网卡一致。
我的理解就是复制物理网卡属性,然后,把地址放在同一个网段就可以了,这是最简单的和外界通信的方式。
#!/bin/bash
while true
do
AA=`ps aux|grep virt-manager|grep -v grep|awk '{print $2}'`

if [ "$AA" ]
then
echo $AA "KVM运行正常"
virsh list
else
echo $AA "KVM启动不正常"
fi
sleep 5
done
临近双十一,各家数码厂商分分开始大促,让我们一同来看一下都有哪些好物。
消息1,32GB 仅 399 元:光威天策内存条 11.11 狂促开启。采用 1.0mm 厚度高规格铝材散热片,8 层 PCB 板、高品质颗粒,XMP2.0 超频选择。本商品质保周期为终身质保,光威京东自营旗舰店提供售后服务。
消息2,4K+31.5英寸仅899元!HKC显示器6.9折大促。T3252U,广视角微边框,DCI-P3 色域,80% AdobeRGB,100% sRGB,不频闪,可滤蓝光,178° 广视角。配有耳机挂钩。HDMI 1.4+HDMI 2.0 +Displayport1.2 等接口,可连接 XBOX,PS 等设备。配有 Audio out 接口,可外接音箱。
消息3,杀疯了!光威2TB固态硬盘史低价699元。慧荣主控,连续读取500MB/秒,连续写入400MB/秒。支持TRIM(需系统支持)、拥有全局磨损平衡算法、支持动态电源管理、支持SATA协会的DEVSLEEP模式、上电数据完整性检查、支持读取电压微调(当ECC出错时);系统支持:Windows 7/8/10、XP、VISTA;MAC OS;LINUX;质保:五年保固。

消息4,摩托罗拉moto X40详细配置曝光:后置50MP三摄,支持 4 倍光学变焦,支持屏下指纹识别,预抢首发。重196克,161.3×73.9×8.5mm机身尺寸,6.67英寸1080×2400分辨率OLED屏幕,10bit色深。 4950mAh/4450mAh电池,8GB/12GB/18GB RAM与128GB/256GB/512GB机身存储。高通骁龙8 Gen 2处理器。moto X40 后置 50MP+50MP+12MP 三摄组合,预计分别为主摄、超广角与人像镜头。
#数码爱好者##数码迷##手机##科技微讯##数码好物荐#
今天,是Linux回炉的二十四天
shell
vsftpd
FTP的系统用户方式配置
useradd -m team1
useradd -m team2
passwd team1
passwd team2
修改配置文件
anonymous_enable=NO #关闭匿名用户(修改),目前亲测直接关这一个就行
local_root=/var/www/html(手动添加)
chroot_local_user=YES(修改)
chroot_list_file=/etc/vsftpd/chroot_list(修改)
/etc/vsftpd/chroot_list #目录没有需要手动创建

allow_writeable_chroot=YES #有写权限的功能,但是不是针对系统的,只是自己的一片乐土
vim /etc/vsftpd/chroot_list
team1
team2
chmod o+w /var/www/html/ #添加其他用户权限
通过shell查看目录,并且可以删除进程或者直接删除用户,亲测没问题,但是,好像有点瑕疵,因为已经凌晨四点了,所以没有深入修改了,如果发现有问题还望海涵并不吝告知,感谢
#!/bin/bash
AA=`cat /etc/vsftpd/chroot_list`
CC=`du -sh /var/www/html/|awk '{print $1}'`
DD=`du -sh * /var/www/html/|wc -l`
while true
do
echo "当前文件夹大小为:"$CC
for kk in $AA
do
BB=`ps -ef|grep $kk|grep -v grep|awk '{print $1}'`
echo "当前登录用户是:"$BB
done
for n in $AA
do
BB=`ps -ef|grep $n|grep -v grep|awk '{print $1}'`
#echo -e "当前登录用户是:"$BB

echo "当前文件夹大小为:"$CC
echo "文件内容为:"$DD
read -t 10 -p "1team1||1team2是结束进程,2team1||2team2是删除用户,请输入:" aa
case $aa in
1team1|1team2 )
echo "当前进程为:" `ps -ef|grep $j|grep -v grep|awk '{print $2}'`
kill -9 `ps -ef|grep $j|grep -v grep|awk '{print $2}'`
echo "已经删除当前用户的进程"
;;
2team1|2team2 )
sed -i 's#$aa# #g' /etc/vsftpd/chroot_list&&sed -i '/^s*$/d' /etc/vsftpd/chroot_list
userdel $aa
echo "已经删除该用户"
esac
done
sleep 10
done
今天,是Linux回炉的第五十二天
shell
heartbeat
#!/bin/bash
while true
do
AA=`netstat -lntup|grep 694|awk '{print $4}'|awk -F ':' '{print $2}'`
BB=`ps -ef|grep nfsd|wc -l`
CC=`ping -c 10 192.168.163.137|sed -n 14p|awk -F ',' '{print $2}'|awk '{print $1}' `

DD=`df -h|sed -n 9p|wc -l`
EE=`df -h|sed -n 9p`
FF=`ping -c 10 192.168.163.136|sed -n 14p|awk -F ',' '{print $2}'|awk '{print $1}' `
GG=`ifconfig | grep -E 'inet.[0-9]' | grep -v '127.0.0.1' | awk '{ print $2}'|wc -l`
HH=(`systemctl status network|grep Active|sed -n 1p|awk -F ':' '{print $2}'|awk '{print $2}'|sed s#(##g|sed s#)##g`)
II=`find / -name '3.txt'|wc -l`
if [ $AA == 694 ]
then
echo "心跳软件正常"
else
echo "心跳软件不正常"
fi
if [ $BB != 0 ]
then
echo "监测到nfs的进程"
if [ $DD == 1 ]
then
echo "nfs的挂载情况" $EE
fi
else
echo "未监测到nfs的进程"
fi
if [ $CC == 10 ]
then
echo "本机网络正常"

else
if [ $HH == 'exited' ]&&[ $GG != 0 ]
then
echo "策略正常,重启解决"
for ((i=0;i++;i<=10));
do
echo $i
done
systemctl restart network
else
echo "策略有问题"
fi
fi
if [ $FF == 10 ]
then
echo "直连网络正常"
find / -name 3.txt -exec rm -rf {} ;
else
echo "直连网络不正常"
cd /usr/local/heartbeat/etc/ha.d/resource.d
./IPaddr 网页链接 start
./Filesystem 网页链接 /var/www/html/ nfs start
echo 0 >/root/3.txt
scp 3.txt root@192.168.163.136:/root
fi
if [ $II == 1 ]
then
echo "已经开启所有相关软件"
else
cd /usr/local/heartbeat/etc/ha.d/resource.d
./IPaddr 网页链接 stop

./Filesystem 网页链接 /var/www/html/ nfs stop
if [ $AA == 694 ]
then
echo "跳软件正常"
else
/etc/init.d/heartbeat start
fi
find / -name 3.txt -exec rm -rf {} ;
echo 1 >/root/4.txt
scp 4.txt root@192.168.163.136:/root
echo "未发现心跳软件执行异常"
fi
sleep 6
done
哎生命在于折腾,突然想起我的nas,想把它连上蓝牙当成音乐播放器,去网上淘了个蓝牙适配器,装上不能用,一查说是群晖dsm升级到7.1后就不支持USB网卡蓝牙设备,必须降到6.24版本才行,变形版的linux升级容易降级可真是不容易,层出不穷的报错,没有图形界面用命令模式搞了一个混天黑地的,好不容易降好级,连上蓝牙一用好家伙这延时延的都成了靡靡之音了,根本没有实用价值,哎原来官方取消它是有道理的啊,不听老人言吃亏在眼前,重新升级到7.1版,折腾了大半个晚上白忙活一场。[捂脸]







