linux命令

下文提到的命令均为个人在工作中使用命令的梳理,仅做记录,方便需要时查看

系统相关

du -h 目录 #查看目录占用空间
du -h --max-depth=1 |sort #查看当前目录下所有一级子目录文件夹大小 并排序
grep 查询内容 目录/文件 | wc -l #查询文件指定内容并统计行数
ps -ef|grep redis #查看redis服务进程情况,这里拿redis服务举例,其他服务查询更改名字即可
lsof -i :6379 #查看6379(为redis的端口号)端口号是否被占用
netstat -tnlp #显示tcp的端口和进程等相关情况
#关闭指定的程序
kill -9 进程号
su root
sudo useradd -d /home/webapp -m webapp #创建用户
sudo passwd webapp #设置用户密码
sudo groupadd webapp #创建用户组
sudo gpasswd -a webapp webapp #添加用户到组,这里有很多种方式
sudo chown -R webapp:webapp /webapp_file #修改文件夹及其子文件夹所有者和组
sudo chmod -R 777 /webapp_file #修改文件夹及其子文件夹权限

目录相关

cd /xx/xx #进入指定目录/home
ls -lrt /home #展示目录下内容/home,若不输入文件夹路径则展示当前目录文件
mkdir /xxx #创建文件夹

文件相关

cp xxx newxxx #复制文件
mv xxx newxxx #移动文件
vi xxx #编辑文件
log_date=$(data -d yesterday +%Y-%m-%d) #获取昨天的时间 使用时格式 ${log_date}
find 目录 -type f -name "*.log" -ctime +7 -exec rm -f {} \; #找出超过7天的日志文件并删除
##从本地复制到远程
scp xxx.sh username@ip:/tmp/xxx.sh
sftp username@ip
#zip解压方式,-o表示同名覆盖,-d为指定解压文件存放路径
unzip -o fileName.zip -d path/
#tar解压 x代表提取 v为verbose展示解压的文件 -C为指定解压文件存放路径,注意使用tar解压时指定的路径如果不存在必须先使用mkdir进行创建
tar -xvf fileName.tar -C path
du -BM /tmp/xx.log | awk '{print $1}' #获取指定文件的大小单位为M

创建定时任务

crontab -l #查看当前用户的定时任务
crontab -e #设置用户级别的定时任务,可以通过定时任务调用脚本
* * * * * echo `date` >> /home/xxx/time.log
#分 时 天 月 年 /代表每
0 1 * * * /bin/sh /webapps/logs/xxx.sh

配置系统级别的任务直接使用 root 权限编辑系统级别定时任务的配置文件: /etc/crontab

创建一个web服务访问页面监控脚本,这个脚本用于服务启动后检查服务是否启用成功

#!/bin/bash
url="http://....."
status_code=$(curl -I -m 30 -o /dev/null -s -w %{http_code}"\n" $url)
echo "访问时间是:`date '+%Y%m%d %H:%M:%S'`---$status_code--->$url"
#while循环访问url,直到状态码为200或者次数大于9次时结束
count=1
while ( [ $status_code -ne 200 -a $count -lt 9 ] )
do
    sleep 60s
    status_code=$(curl -I -m 30 -o /dev/null -s -w %{http_code}"\n" $url)
    echo "访问时间是:`date '+%Y%m%d %H:%M:%S'`---$status_code--->$url"
    ((count++))
done

结合crontab命令定时清理nginx日志

#!/bin/bash
#日志路径
log_path="/xxx/nginx1.8.1/logs"
#昨天的日期
log_date=$(date -d yesterday +%Y-%m-%d)
#对有需要的日志进行备份
for i in `find ${log_path}/*_error.log`
do
 newPath="`echo $i | awk -F '\\\\.log'` '{print $1}'"
 newPath=${newPath}_${log_date}.log
 mv $1 $newPath
 #> $1
done
#重新打开日志
/xxx/nginx1.8.1/sbin/nginx -s reopen
#找出超过7天的日志文件删除
find ${log_path} -type f -name "*.log" -ctime +7 -exec rm -f {} \;

 

posted @   一尺灯光  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示