一、命令xargs --------------- 参数替换
由于很多命令不支持管道|来传递参数,xargs用于产生某个命令的参数,xargs 可以读入 stdin 的数
据,并且以空格符或回车符将 stdin 的数据分隔成为参数,另外许多命令不能接受过多参数,命令执行可能会失败,xargs 可以解决
注意:文件名或者是其他意义的名词内含有空格符的情况
单独使用xargs 是将键盘上的输入输出在屏幕上
xargs默认 是读取键盘输入在输出出来,把输入的东西 传给下一个命令作为参数
二、命令date -----查看当前系统时间
date查看当前系统时间
-d 你描述的日期,显示指定字符串所描述的时间,而非当前时间
%F 完整日期格式,等价于 %Y-%m-%d
% T 时间(24小时制)(hh:mm:ss)
-s 修改系统时间
date -d '-1 day' +%F 前一天
date +%F 当前日期 yy-mm-dd(年月日)
date -d '1 day ' +%F-%T 后一天
date -d "-3 day" 前三天
date -d "+3 day" 后三天
date -s "12:34:56"
三、/proc目录和内核参数管理
/proc目录:内核把自己内部状态信息及统计信息,以及可配置参数通过proc伪文件系统加以输出
/proc是虚拟文件夹,不存在磁盘中,而存在内存当中的
内核参数:
-
只读:只用于输出信息
-
可写:可接受用户指定“新值”来实现对内核某功能或特性的配置
/proc/sys 设置
sysctl是一个允许改变正在运行中的Linux系统的接口,修改的是针对整个系统的内核参数。sysctl的修改是立即且临时的(重启后失效)。也可以通过修改sysctl.conf配置文件,达到永久生效
sysctl 命令用于查看或设定此目录中诸多参数
sysctl -w path.to.parameter=VALUE
默认配置文件:/etc/sysctl.conf 及以下文件
/run/sysctl.d/*.conf
/etc/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf
sysctl命令:
sysctl -a 查看所有生效参数
临时设置某参数 sysctl -w parameter=VALUE
通过读取配置文件设置参数 sysctl -p [/path/to/conf_file]
查看指定参数当前值 sysctl [/path/to/conf_file]
内核调优:
net.ipv4.ip_forward
路由转发功能
net.ipv4.icmp_echo_ignore_all
禁止ping
net.ipv4.ip_nonlocal_bind
#允许应用程序可以监听本地不存在的IP
这个一定要开,大部分都是开着的
echo命令通过重定向方式也可以修改大多数参数的值
echo "VALUE" > /proc/sys/path/to/parameter
临时修改内核参数:
临时修改内核参数:
#临时修改
[root@localhost ~]#sysctl -w net.ipv4.icmp_echo_ignore_all=0
#注意0前后不要有空格空格
net.ipv4.icmp_echo_ignore_all = 0
net.ipv4.icmp_echo_ignore_all 禁止ping
vm.drop_caches 清除缓存
swap
常用的内核参数:
net.ipv4.ip_forward
路由转发功能
net.ipv4.icmp_echo_ignore_all
禁止ping
net.ipv4.ip_nonlocal_bind
#允许应用程序可以监听本地不存在的IP
vm.drop_caches
#清除缓存
fs.file-max = 1020000
#全局打开文件的最大数
vm.overcommit_memory = 0
#0表示内核将检查是否有足够可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则内存申请失败,并把错误返回给应用进程。
#1表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
#2表示内核允许分配超过所有物理内存和交换空间总和的内存。
vm.swappiness = 10
#什么时候允许使用swap 剩余百分之10 可以使用
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
#禁用IPv6
你做过那些内核调优?
开启路由转发功能,一定要开启
tcp连接数
开启禁ping
……
范例:禁止ping
[root@localhost ~]#sysctl -a|grep icmp
net.ipv4.icmp_echo_ignore_all = 1
[root@localhost ~]#vim /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all = 1
[root@localhost ~]#vim /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all = 1
#删除上条记录无法恢复ping 读取配置文件是修改内存中的配置, 没有此条记录内存中还是保持原样
#临时修改
[root@localhost ~]#sysctl -w net.ipv4.icmp_echo_ignore_all=0
#注意0前后不要有空格空格
net.ipv4.icmp_echo_ignore_all = 0
#子配置
[root@centos7 ~]#cat /proc/sys/net/ipv4/icmp_echo_ignore_all
0
[root@centos7 ~]#vim /etc/sysctl.d/test.conf
#子配置文件
[root@centos7 ~]#cat /etc/sysctl.d/test.conf
#可以测试 删除此条配置查看是否可以ping通,
net.ipv4.icmp_echo_ignore_all=1
[root@centos7 ~]#sysctl -p /etc/sysctl.d/test.conf
net.ipv4.icmp_echo_ignore_all = 1
[root@centos8 ~]#cat /proc/sys/net/ipv4/icmp_echo_ignore_all
1