前言:
内存:存储程序以及数据的地方。比如当我们在word写文档时,在键盘上敲入的字符它们就被存入内存中,当你选择存盘时,内存中的数据才会被存入硬(磁)盘。断电后,内存中的信息全部丢失,存储介质是集成块的RAM类型,电子读写,存储容量较小。
硬盘:是磁存储,靠磁头读写。硬盘可以长期存储数据,不受断电影响。存储容量大。
cpu: 是中央处理器,CPU一般由逻辑运算单元、控制单元和存储单元组成。在逻辑运算和控制单元中包括一些寄存器,这些寄存器用于CPU在处理数据过程中数据的暂时保存。
一、寻找问题
1、实际的开发中,已经开发完的项目放在服务器执行,执行失败出了问题,找原因的依据就是依靠日志定位错误。
2、使用shell 连接服务器,只需要输入服务器ip端口22默认就好,ip正确会让你输用户名以及密码。
3、连接成功之后找到项目的路径,不知道路径可以使用xftp,方便查找。
4、进入当前目录查看报错日志:tail -100f nohuo.log 实时显示100行日志记录
5、分析报错日志,解决问题后,打包项目,把有问题的包替换掉。
打包:在自己的编译工具打包项目,以eclipse为例,右键项目-run as - 先manven clear 然后 maven install
打包成功console输出栏会有提示bulid success ,会你打包后的jar包路径,拿到打完的包,后先把旧项目停了,
改下名字留着备份,放入新包,启动项目,问题解决。
二、常用命令
1、ps命令用于报告当前系统的进程状态:
1)查看所有进程: ps aux
a:显示当前终端下的所有进程信息,包括其他用户的进程。
u:使用以用户为主的格式输出进程信息。
x:显示当前用户在所有终端下的进程。
2)查看所有进程: ps -elf
-e:显示系统内的所有进程信息。
-l:使用长(long)格式显示进程信息。
-f:使用完整的(full)格式显示进程信息
3)ps -ef | grep redis ps 与grep 常用组合用法,查找特定进程
4)nohup:不挂断的运行命令。
语法:nohup Command【Arg...】 【 &】
描述:nohup命令运行有Command 参数和任何相关的Arg参数执定的命令,忽略所有挂断信号。
在注销后使用nohup命令运行后台中的程序。要运行后台中nohup命令,添加& 到命令的尾部。
用nohup提交作业: 使用nohup提交作业,那么在缺省的情况下该作业的所有输出都被重定向到一个
名为nohup的文件,除非另外指定了输出文件:
nohup command 》 myout.file 2>&1 &
例如:
实时查看末尾1000条记录: tail -1000f nohup.log
5)清除redis缓存 : flushdb 清除当前库 flushall 清除所有库
6)遇到连不上的应用,先ping ip 看能不能ping通,然后ping端口 telnet ip 端口 看端口开没开 ,注意telnet clent 没安装的不能这么用
7)是在连不上,试试重启,屡试不爽。。。
8)删库跑路命令 rm -rf
删除命令:rm [选项] 文件或目录
选项说明:
-f -force 忽略不存在的文件,强制删除,无任何提示
-i --interactive 进行交互式地删除
-r | -R --recursive 递归式地删除列出的目录下的所有目录和文件
-v --verbose 详细显示进行的步骤
命令实例:
1、删除a.txt文件 rm -rf a.txt
2、删除mplogs目录 rm -rf mplogs
三、查看磁盘空间:
1)df命令:改命令是用来检查linux服务器的文件系统的磁盘占用情况。
格式是 df 【选项】 【文件】
eg: 查看当前目路磁盘的使用情况: df -h
查看指定目录的磁盘使用情况:df -h /data/
2)du命令:用于显示目录或文件的大小,du会显示指定的目录或文件所占用的磁盘空间。
格式:du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>]
[--max-depth=<目录层数>][--help][--version][目录或文件]
eg:查看当前目录每个文件夹的情况:du --max-depth=1 -h
查看指定目录每个文件夹的情况:du --max-depth=1 -h /data/
计算指定文件夹大小 du -sh /data/
查看每个文件夹的大小。 du -sh * 可以快速定位大文件所存在的位置
du -h --max-depth=1,这个命令用于查看当前目录,哪个文件占用最大,运行效果如下:
四、查看内存使用情况:
1、linux系统查看内存命令:cat /proc/meminfo
2、free命令是一个快速查看内存使用情况的方法,它是对 /proc/meminfo 收集到的信息的一个概述。
注意:
1)如果Swap used值大于0,代表服务器物理内存已经遇到内存瓶颈了,已开始使用虚拟内存了,要么优化代码,要么加内存。
2)buffers和cached区别:缓冲区还没有被写入磁盘。 缓存是从磁盘“读取”并存储以备后用的。
3、top命令 (可查看cpu也可查看内存占用率)
1)15:11:28 系统时间 ;up 3 days 系统运行时间,格式为分;2 users 当前登录用户数
2)代表系统负载即任务队列的平均长度。三个数值分别是1分钟,5分钟,15分钟到现在的平均值。这三个数可以判定系统是否负载过高(如果持续大于cpu个数,则表明需要优化你的代码或者框架了)。
3)判断进行运行状态:
s:sleep;
r:run;
Z: 僵尸(代表:进程已经死了,但还在占用进程,服务器资源未释放)
i:代表短时在切换资源
五、启动报错
1、启动报错:java.net.BindException: 地址已在使用
应该是端口号被占用,使用命令 netstat -alnp | grep 8080
kill -9 95333 杀掉这个进程,即可