命令iostat 1 -d -x -p sda返回参数参数含义Device设备名r/s设备每秒完成的读请求数(合并后)w/s设备每秒完成的写请求数(合并后)rkB/s每秒读K字节数wkB/s每秒写K字节数rrqm/s每秒钟排队到设备的合并后的读请求数wrqm/s每秒钟排队到设备的合并后的写请求数%rrqm在发送到设备之前合并到一起的读请求的百分比%wrqm在发送到设备之前合并到一起的写请求的百分比r_await平均每次读请求的时间(以毫秒为单位) 包括请求在队列中花费的时间和执行它们所花费的时间w_await平均每次写请求的时间(以毫秒为单位) 这包括请求在队列中花费的时间和执行它们所花费的时
Read More →Centos系统date -R timedatectl set-local-rtc 1 timedatectl set-timezone Asia/Shanghai Debian系统date -R rm -rf /etc/localtime cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Read More →最常用的转发,从 192.168.1.21:59388 转发到 192.168.1.20:5938pro='tcp' NAT_Host='192.168.1.21' NAT_Port=5938 Dst_Host='192.168.1.20' Dst_Port=5938 iptables -t nat -A PREROUTING -m $pro -p $pro --dport $NAT_Port -j DNAT --to-destination $Dst_Host:$Dst_Port iptables -t nat -A POSTROUTING -m $pro -p $pro --d
Read More →直接来命令curl -o /dev/null -w %{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%{speed_download}"\n" url执行结果如下# curl -o /dev/null -w %{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%{speed_download}"\n" http://127.0.0.1/webmail/login/login.do % Tot
Read More →$0 这个程式的执行名字$n 这个程式的第n个参数值,n=1..9$* 这个程式的所有参数,此选项参数可超过9个。$# 这个程式的参数个数$$ 这个程式的PID(脚本运行的当前进程ID号)$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)$- 显示shell使用的当前选项,与set命令功能相同$@ 跟$*类似,但是可以当作数组用
Read More →NAT_Host='1.1.1.1' Dst_Host='2.2.2.2' iptables -t nat -A PREROUTING -p tcp -d $NAT_Host -j DNAT --to $Dst_Host iptables -t nat -A POSTROUTING -d $Dst_Host -p tcp -j SNAT --to $NAT_Host iptables -A FORWARD -d $Dst_Host -j ACCEPT这样就可以从 1.1.1.1 上把所有tcp访问全部转发到 2.2.2.2 上去了奇葩客户有这样的奇葩需求
Read More →写了个脚本签到,但是不想总是在确定的时间签到,不然在数据库里面的记录太假了,所以需要在确定的时间段内,随机选个时间执行,最后想到了使用Cron+AT实现思路很简单,就是cron设置一个起始时间,比如每天早上6点,在这个时间往后随机的2~350分钟里面去签到那么只要这样0 6 * * * echo 'sleep ' $(shuf -i 1-60 -n 1)';date >>/tmp/xxxx.txt' |at now + $(shuf -i 2-350 -n 1) min之所以前面还加了随机1-60秒的sleep 是因为 at是整点执行,不想让数据库内只有整分钟点的签到记录。这个比直
Read More →1.使用时间相关的随机数利用data命令生成输出unixtimestamp(%s)和当前时间的纳秒数据(%N,精确到亿分之一秒)前者保证在不同秒数之内输出不重复 后者保证在同一秒内数字不重复 两者组合就可以了date +%s%N这个方法不依赖系统 只要时间不停止,就一直可以得到不重复的为随机数2.系统shell内部变量$RANDOM这么没啥好说的 依赖shell3.通过Linux的随机设备获取 然后算校验和head -10 /dev/urandom | cksum注意这里千万不要使用cat去获取 这个是一条没有尽头的路 获取1行和10行没有太大的区别4.通过Linux的内核的UUI
Read More →直接用过滤器的生成规则去删除TC的filter会导致所有过滤器都被清空不像class,添加后 想要删除很简单 直接把TC命令中的add换成del就可以了,如果class重复,就会像添加路由出错时候一样有提示。但是filter不一样,相同规则的filter可以不断持续的添加,规则添加后,内核会用不同的句柄号(handle)来区分,删除一个filter,不能简单的把规则的add换成del,那会删除所有的filter规则,因为你没有提供最重要的句柄号(handle) 没有提供就是0 是0就会删除所有规则。如果一个filter已经和一个class关联了,那么你如果删除这个class 就会得到这样的提示
Read More →0:表示键盘输入(stdin)1:表示标准输出(stdout),系统默认是1 2:表示错误输出(stderr)command >/dev/null 2>&1 & == command 1>/dev/null 2>&1 &1)command:表示shell命令或者为一个可执行程序2)>:表示重定向到哪里 3)/dev/null:表示Linux的空设备文件 4)2:表示标准错误输出5)&1:&表示等同于的意思,2>&1,表示2的输出重定向等于于16)&:表示
Read More →