在日常开发中很问题需要到服务器日志中查找bug,但是一些命令和找问题的方式做一个笔记,并且会持续更新哦。
一、连接服务器
这里推荐用MobaXterm,免费能连接服务器还能上传下载文件一条龙服务。
下载网址(安装时候一直下一步就可以了):https://mobaxterm.mobatek.net/download-home-edition.html
二、进入服务器后查看进程。
linux常用命令:
pwd #当前目录路径
cd /home # 切换/进入home目录
cd .. # 到上一目录(父目录)
cd ../.. # 到父目录的父目录
cp -ir sourceDir/ home/targetDir/ # 把当前路径下的sourceDir文件夹复制到home目录下,取名为targetDir,且带参数-i(若有同名文件,会询问是否覆盖)和-r(复制文件夹时连同子文件(夹)一起复制)
mv -i sourceFile /home/targetFile # 把当前目录下的sourceFile剪切到/home目录下并命名为targetFile,-i(覆盖时候会询问)
rm -r Dir/ # 删除Dir文件夹-r(删除所有子文件,对文件夹操作一定要带-r)
find /home -name myFile # 在/home目录下查找文件名为myFile的文件(注:myFile也可以搭配正则表达式使用)
find /home -name *.txt # 在/home目录下查找以txt为后缀的文件
find /home -mtime 0 # 在/home目录下查找今天内被改过的文件
find /home -mtime +1 # 在/home目录下查找昨天之前(不包括昨天)被改过的文件
find /home -mtime -1 # 在/home目录下查找昨天至今(即昨天和今天)被改过的文件
find /home -size +100M # 在/home目录下查找大于100MB的文件,注意c表示byte
tar -jcv myDir/ # 压缩myDir文件夹
tar -jxv DownloadDir.tar.gz myDir/ # 解压DownloadDir.tar.gz到当前文件夹下,并命令为myDir
mkdir newDir/ # 在当前路径创建一个空文件夹newDir/
rmdir oldDir/ # 在当前路径删除oldDir文件夹及其子文件(夹)
查看进程
查看进程ps命令
ps 常用参数:
-A:显示所有进程
-a:不与terminal有关的所有进程
-u:有效用户的相关进程
-x:一般与-a一起用,列出完整的进程信息
-l:long,详细列出PID的信息
## ps用法
ps Aux # 查看系统所有的进程数据
ps ax
杀进程
kill命令经常用于杀进程
kill常用参数:
-SIGHUP:启动被终止的进程
-SIGINT:相当于ctrl+c,中断进程
-SIGKILL:强制中断进程
-SIGTERM:以正常的结束进程方式来终止进程
-SIGSTOP:相当于ctrl+z,暂停进程
## kill用法
kill -SIGKILL 10876 # 强制中断PID=10876的进程(PID可以通过ps查到,有时可以加上| grep进行筛选)
三、查看日志
一般使用less命令
less log.file #查看log.file日志
一些查看日志时候的快捷建
查看文件开头:g
查看文件结尾(附加刷新最新内容):shift+g
查找关键字(下一个n,上一个f):/关键字
移动到某一行:ng(n为行号)
下一页:ctrl+f
上一页:ctrl+b
四、用arthas查看
用户文档:https://arthas.aliyun.com/doc
最近公司测试环境用docker,所以要用docker看日志。
docker官方文档
docker 查看日志方式
docker logs
–details 显示提供给日志的额外细节
–follow或-f 按日志输出
–since 从某个时间开始显示,例如2013-01-02T13:23:37
–tail all 从日志末尾多少行开始显示
–timestamps或-t 显示时间戳
–until 打印某个时间以前的日志,例如 2013-01-02T13:23:37
查看服务器中的所有容器
docker ps
查看settle-hour的最新日志
docker logs -f settle-hour
查看最后n行日志
docker logs --tail=100 settle-hour
查看某个时间点开始的日志(一分钟钟前,五分钟后的日志)
docker logs --since=5m --until=1m settle-hour
显示时间戳显示从20分钟前到1分钟前的前100行日志
docker logs -t --since=20m --until=1m --tail=100 settle-hour
查询日志中’Exception:'显示后面20行和前面10行
docker logs -f settle-hour | grep -A 10 -B 20 ‘Exception:’
将日志输出成文件在当前目录下
ocker logs -f settle-hour >>log.txt