find命令
查找/oldboy/free目录下以log结尾且大于1M的文件,并拷贝到/tmp/b目录中
xargs方法一:
find /oldboy/free -type f -name "*.log" -size +1M |xargs cp -t /tmp/b/
参数说明:-t参数 意思是告诉cp, /tmp/b是一个目录
xargs方法二:
find /oldboy/free -type f -name "*.log" -size +1M |xargs -i cp {} /tmp/d
xargs -i 和{} 结合,中括号可以理解为前面命令执行的结果,作为此命令的输入【-i参数,可以宽泛理解为数据传递】
范例1:
我要查找/oldboy目录下的“.bak”且大于1M的文件,并全部改名为“*.log”
find /oldboy -type f -name "*.log" -size +1M |xarg -i mv {} {}.log
范例2:删除当前目录下的所有tmp文件
find ./ -type f -name "*.tmp" |xargs -i rm -rf {}
范例3:查找当前目录所有包含baidu关键词的json文件
find ./ -type f -name "*.json" |xargs grep baidu
范例4:删除/oldboy目录下的所有普通文件
find /oldboy -type f |xargs -i rm -rf {}
ss命令
ss -lntup |grep sshd
查看服务对应端口或端口是否已经启用
-l 显示监听状态的套接字(sockets)
-n 不解析服务名称
-t 仅显示tcp套接字
-u 仅显示udp套接字
-p 显示使用套接字的进程
inode
一个非空文件至少占用一个inode和一个block
inode 在一个文件系统分区里面,inode号码唯一
df -h 查看分区磁盘占用情况
df -i 查看分区inode占用
ls -li /etc/hosts 显示文件inode
stat /etc/hosts 查看文件属性(包括inode、block、访问权限、G/Uid和修改时间等信息)
[root@openvpn1 ~]# stat /etc/passwd
File: `/etc/passwd'
Size: 1166 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 1183654 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-05-30 17:37:01.130227361 +0800
Modify: 2017-03-08 13:42:06.234661626 +0800
Change: 2017-03-08 13:42:06.235662212 +0800
block用来存储实际数据,每个block的大小一般有1k、2k、4k
查看每个分区inode节点大小
dumpe2fs /dev/sda3 |grep "Block size"
dumpe2fs /dev/sda3 |grep -i "block size"
dumpe2fs /dev/sda3 |grep "Inode size"
dumpe2fs /dev/sda3 |grep -i"inode size"
假设,/dev/sda3是指系统的根分区
附件:grep命令
grep -i 找东西的时候不区分大小写(用法如上)
遇到磁盘空间不足怎么办?
no-space-left-on-device
磁盘空间不足
磁盘空间不足,有三种情况:
block满了 使用df -h查看剩余空间
inode满了 使用df -i 查看可用inode
block进程占用 一般重启对应程序即可
真实案例:
在一台配置较低的Linux服务器(内存、硬盘比较小)的/data分区内创建文件时,系统提示磁盘空间不足,用df -h命令查看了一下磁盘使用情况,发现/data分区只使用了66%,还有12G的剩余空间,按理说不会出现这种问题。 后来用df -i查看了一下/data分区的索引节点(inode),发现已经用满(IUsed=100%),导致系统无法创建新目录和文件。
查找原因:/data/cache目录中存在数量非常多的小字节缓存文件,占用的Block不多,但是占用了大量的inode。
解决方案:
1、删除/data/cache目录中的部分文件,释放出/data分区的一部分inode。
2、用软连接将空闲分区/opt中的newcache目录连接到/data/cache,使用/opt分区的inode来缓解/data分区inode不足的问题:
ln -s /opt/newcache /data/cache
查看文件类型
格式:file filename
权限
r read 可读 数字4
w write 可写 数字2
x execlute可执行 数字1
- 无权限 数字0
软硬链接
软链接类似windows下的快捷方式
命令格式: ln -s 源文件 软链接文件
硬链接(命令不加参数,默认创建硬链接)
命令格式: ln -s 源文件 软链接文件
特点:同分区下inode相同,注意是同分区
格式:ln 源文件 硬件链接文件
ls -li filename //查看文件inode信息
注:硬链接可理解为超市前后门,或者超市有多个出入口。硬链接源文件删除后,硬链接后的文件数据依然存在
软连接(又名符号链接)
格式: ln -s 源文件 软链接文件
readlink 软链接文件 查看软链接文件内容
注意:1. 不能对目录创建硬链接,但可以对目录和文件创建软链接
2. 软链接可以跨文件系统进行创建
文件被彻底删除条件
硬链接数量为0(删除所有硬链接)
进程调用数量为0(程序进程被调用-解决方案:重启服务)
lsof 命令
lsof 显示所有被打开的文件(可看到正在被哪些程序进程占用)
解决方法一般是重启相应服务,让进程放弃占用即可
删除:
\rm -rf /var/log/messages
lsof |grep messages 查看messages文件被哪个程序调用
(文件删除后,查找程序调用,文件名称后面会显示deleted)
/etc/init.d/rsyslog restart 重启
seq命令
seq 100000000 >> /var/log/messages
用于生产从某个数到另外一个数之间的所有整数。
du命令-计算文件所占空间
-s summary 简介
-h 人类可读的方式显示大小
du -sh /* |grep G 只显示以G为大小的文件
du -sh /* |grep M 只显示以M为大小的文件
用户和组
root 用户UID和GID都为0
普通用户 UID从500开始
/etc/passwd 存放用户信息
/etc/shadow 存放用户密码
查看所有shell
cat /etc/shells
awk
awk -F: '{print $1,$3,$NF}' /etc/passwd
以冒号为菜刀,取首列/第三列和最后一列
awk -F : '{print $1,$NF}' /etc/passwd
以冒号为菜刀,取首列和最后一列
awk -F: '{print $NF}' /etc/passwd
以冒号为菜刀,取最后一列
Linux三种时间(了解)
mtime 文件内容修改时间
ctime 属性改变时间
atime 访问时间
stat filename 使用stat命令查看详细时间
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2017/05/31/xargs命令-总结/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!