文件管理
小技巧
命令行光标跳转
Ctrl+a:跳到行首
Ctrl+e:跳到行尾
Ctrl+d: 删除光标后一个字符
ctrl+u:删除光标至行首的内容
ctrl+k: 删除光标至行尾的内容
Ctrl+w:删除光标前一个单词
压缩与解压:
压缩:zip + 自定义名字+压缩文件 :压缩文件,保留原文件
解压:unzip+文件名
tar 打包,本身不具有压缩,解压功能,但可调用相关工具
tar -czvf 自定义文件.tar 目标文件 调用gzip压缩
-xzvf 目标文件 调用gunzip解压
-jcf 调用bzip2压缩
-jxf 调用bunzip解压
-Jcf 调用xz压缩
-Jxf 调用unxz解压
-C 指定解压目录(大C 指定的文件夹必须存在)
#tar -czvf 压缩后的文件名 需要压缩的文件
tar -czvf log.tar.gz log #把log文件打包通过gz压缩成log.tar.gz
tar -xzvf xx.tar.gz -c /opt/a #指定xx压缩文件 解压到/opt/a
find:查找
find / -name 文件名
-a 并行的两个参数用-a连接
-user 拥有者/所属组,根据拥有者所属组进行查询
-name 根据名称进行查找 -iname是不区分大小写
-size 根据文件大小进行查找,通常和-a 连用
-type 根据类型 f文件,d目录, l链接 进行查找
-atime 根据文件访问时间进行查找 ,访问时间经常变更,不建议使用
-amin 根据文件访问时间进行查找,后面+分钟数
-ctime 根据文件权限修改时间进行查找,后面 +天数 ,更改后到现在的天数 常用与清理备份时查询
-mtime 根据文件修改时间进行查找
-type 文件类型(f文件,d目录,l链接)
find /root -user root #查看/root下,文件所有者为root的文件
find /root -size +2k -a -5k # 查找文件大于2KB的文件,小于5k的文件
find /mnt -name 111 -exec rm -rf {} \; #查找到/mnt下的111文件进行删除
#-exec 对搜索结果执行操作; rm -rf 是操作命令,{} \; 是查找的结果
find /var/log/mysql -name "*.sql" -type f -ctime +7 -exec rm -rf {} \; > /dev/null 2>&1 #在/var/log/mysql目录下找到*.sql(类型为文件)并且文件权限更改时间大于7天,执行删除操作,然后后台执行,执行结果放到回收站
find /mnt -name test.txt -type f| xargs -I {} mv {} /tmp
find /mnt/db/ -mtime "+15" -name "test*" -type "f" | xargs -I {} mv {} /tmp
#将大于15天的test开头的文件 移动到/tmp下
xargs 参数过滤器
-I 将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。(大写i)
{} 过滤数据存放
mv 移动
/tmp 要移动到的目录
全局搜索locate:
速度快,默认在本地数据库查找
本地数据库路径/etc/updatedb.conf
要写在这里面的才找的到
查找命令的绝对路径which
which +命令
type:查看文件类型(内建命令/外建命令)
stat:详细查看文件属性,创建,修改时间
du -h:真实查看文件大小(占用磁盘大小)
查看历史数据
查看历史缓存hash
hit:命中,命令被引用了几次
-d删除指定的hash
-r忘记所有记住的位置,清空,清除hash在内存中的缓存
查看历史命令history
-c:清空命令历史
-d:指定偏移量删除
#history -d offset offset:偏移量,就是你想删的哪条
-w:保存命令历史至文件中
~/.bash_history
从真机拖文件到虚拟机或者xshell
安装lrzsz,没有安装包就下载
sz:将选定的文件发送(send)到本地机器
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)
例:
从服务器发送文件到本地:sz /tmp/tes
马上会弹对话框,选择保存在本地的位置
配置YUM
mv /etc/yum.repo.d/ /etc/yum.repo.d.buk/ #把之前的repo备份下
vim /etc/yum.repo.d/a.repo #创建个repo
[a]
name=a
baseurl=///mnt/cdom #需要把光盘挂载到 /mnt/cdom
gpgcheck=0
enabled=1
yum repolist all #查看可用的包
如果还是无法使用,尝试下载WinSCP,该软件是传输文件用的
下载:http://mirrors.aliyun.com/repo/Centos-7.repo
拷贝到服务器上/etc/yum.repo.d/ 然后安装
yum install -y epel-release
文件备份
配置备份脚本
vim /opt/backup/webdump/web_back.sh
#!/bin/bash
#日期
dd=`date +%Y-%m-%d-%H-%M-%S`
#备份文件
dir=/opt/tomcat
dir8=/opt/tomcat8
#备份文件保存路径
#/opt/backup/webdump/tomcat
#/opt/backup/webdump/tomcat8
dir_bak_tomcat=/opt/backup/webdump/tomcat
dir_bak_tomcat8=/opt/backup/webdump/tomcat8
cd $dir_bak_tomcat
tar -czvf $dd-tomcat.tar.gz $dir
sleep 180s
cd $dir_bak_tomcat8
tar -czvf $dd-tomcat8.tar.gz $dir8
chmod +x /opt/backup/webdump/web_back.sh
配置定时备份任务crontab
30 3 * * * /bin/bash /opt/backup/webdump/web_back.sh
配置定时清理脚本
vim /opt/backup/webdump/cleandump.sh
#!/bin/bash
dir_bak_tomcat=/opt/backup/webdump/tomcat
dir_bak_tomcat8=/opt/backup/webdump/tomcat8
#删除15天以上备份
find /opt/backup/webdump/tomcat -name "*.tar.gz" -type f -ctime +3 -exec rm -rf {} \; > /dev/null 2>&1
find /opt/backup/webdump/tomcat8 -name "*.tar.gz" -type f -ctime +3 -exec rm -rf {} \; > /dev/null 2>&1
配置定时清理任务
* 0 * * * /bin/bash /opt/backup/webdump/cleandump.sh
直接通过crontab定时清理
测试命令是否正常
#-mtime +5: 目录下修改时间超过5天的
find /var/lib/mysql/ -name 'master-bin.*' -mtime +5 -delete
编辑crontab
#时间字段: 00 */6 * * * 表示每6小时的整点(00:00、06:00、12:00、18:00)执行任务。
#/usr/bin/find /var/lib/mysql/: find 命令从 /var/lib/mysql/ 目录开始搜索。
#-mtime +5: 目录下修改时间超过5天的
#-delete: 删除找到的文件。
#/var/log/cron.log 2>&1: 将标准输出和标准错误输出重定向到 /var/log/cron.log 文件中。
00 */6 * * * /usr/bin/find /var/lib/mysql/ -name 'master-bin.*' -mtime +5 -delete >> /var/log/cron.log 2>&1
inode 使用率过高排查
某个磁盘IUse%超过80% 就需要清理inode文件
测试环境inode未满请忽略
可以通过以下命令排查 inode情况
df -ih
for i in /*; do echo $i; find $i | wc -l; done
找到占用多的目录继续查询
for i in /home/*; do echo $i; find $i | wc -l; done
删除所有文件
cd 文件多的目录
find . -name "*"|xargs rm -rf "*"