登录服务器,首先用到的5个命令

作为一个系统管理员/SRE 工作 5 年后,我知道当我连接到一台 Linux 服务器时我首先应该做什么。这里有一系列关于服务器你必须了解的信息,以便你可以(在大部分时间里)更好的调试该服务器。

连上 Linux 服务器的第一分钟

这些命令对于有经验的软件工程师来说都非常熟悉,但我意识到对于一个刚开始接触 Linux 系统的初学者来说,例如我在 Holberton 学校[1]任教的学生,却并非如此。这也是我为什么决定分享当我连上 Linux 服务器首先要运行的前 5 个命令的原因。

  1. w
  2. history
  3. top
  4. df
  5. netstat

这 5 个命令在任何一个 Linux 发行版中都有,因此不需要额外的安装步骤你就可以直接使用它们。

w:

  1. [[email protected]-172-31-48-251 ~]$ w
  2. 23:40:25 up 273 days, 20:52,  2 users,  load average: 0.33, 0.14, 0.12
  3. USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT
  4. ubuntu pts/0    104-7-14-91.ligh 23:39    0.00s  0.02s  0.00s w
  5. root pts/1    104-7-14-91.ligh 23:40    5.00s  0.01s  0.03s sshd: root [priv]
  6. [[email protected]-172-31-48-251 ~]$

这里列出了很多有用的信息。首先,你可以看到服务器运行时间 uptime[2],也就是服务器持续运行的时间。然后你可以看到有哪些用户连接到了服务器,当你要确认你没有影响你同事工作的时候这非常有用。最后 load average[3] 能很好的向你展示服务器的健康状态。

history

  1. [[email protected]-172-31-48-251 ~]$ history
  2.   1  cd /var/app/current/log/
  3.   2  ls -al
  4.   3  tail -n 3000 production.log
  5.   4  service apache2 status
  6.   5  cat ../../app/services/discourse_service.rb

history 能告诉你当前连接的用户之前运行了什么命令。你可以看到很多关于这台机器之前在执行什么类型的任务、可能出现了什么错误、可以从哪里开始调试工作等信息。

top

  1. top - 23:47:54 up 273 days, 21:00,  2 users,  load average: 0.02, 0.07, 0.10
  2. Tasks:  79 total,   2 running,  77 sleeping,   0 stopped,   0 zombie
  3. Cpu(s):  1.0%us,  0.0%sy,  0.0%ni, 98.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.3%st
  4. Mem:   3842624k total,  3128036k used,   714588k free,   148860k buffers
  5. Swap:        0k total,        0k used,        0k free,  1052320k cached
  6. PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                                                                      
  7. 21095 root      20   0  513m  21m 4980 S  1.0  0.6   1237:05 python                                                                                                                                                                                                                        
  8. 1380 healthd   20   0  669m  36m 5712 S  0.3  1.0 265:43.82 ruby                                                                                                                                                                                                                          
  9. 19703 dd-agent  20   0  142m  25m 4912 S  0.3  0.7  11:32.32 python                                                                                                                                                                                                                        
  10.   1 root      20   0 19596 1628 1284 S  0.0  0.0   0:10.64 init                                                                                                                                                                                                                          
  11.   2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                                                                                                                                                                                      
  12.   3 root      20   0     0    0    0 S  0.0  0.0  27:31.42 ksoftirqd/0                                                                                                                                                                                                                  
  13.   4 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kworker/0:0                                                                                                                                                                                                                  
  14.   5 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kworker/0:0H                                                                                                                                                                                                                  
  15.   7 root      20   0     0    0    0 S  0.0  0.0  42:51.60 rcu_sched                                                                                                                                                                                                                    
  16.   8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 rcu_bh

你想知道的下一个信息:服务器当前在执行什么工作。使用 top 命令你可以看到所有正在执行的进程,然后可以按照 CPU、内存使用进行排序,并找到占用资源的进程。

df

  1. [[email protected]-172-31-48-251 ~]$ df -h
  2. Filesystem      Size  Used Avail Use% Mounted on
  3. /dev/xvda1      7.8G  4.5G  3.3G  58% /
  4. devtmpfs        1.9G   12K  1.9G   1% /dev
  5. tmpfs           1.9G     0  1.9G   0% /dev/shm

你服务器正常工作需要的下一个重要资源就是磁盘空间。磁盘空间消耗完是非常典型的问题。

netstat

  1. [[email protected]-172-31-48-251 ec2-user]# netstat -lp
  2. Active Internet connections (only servers)
  3. Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name  
  4. tcp        0      0 *:http                      *:*                         LISTEN      1637/nginx          
  5. tcp        0      0 *:ssh                       *:*                         LISTEN      1209/sshd          
  6. tcp        0      0 localhost:smtp              *:*                         LISTEN      1241/sendmail      
  7. tcp        0      0 localhost:17123             *:*                         LISTEN      19703/python        
  8. tcp        0      0 localhost:22221             *:*                         LISTEN      1380/puma 2.11.1 (t
  9. tcp        0      0 *:4242                      *:*                         LISTEN      18904/jsvc.exec    
  10. tcp        0      0 *:ssh                       *:*                         LISTEN      1209/sshd          

计算机已成为我们世界的重要一部分,因为它们有通过网络进行相互交流的能力。知道你的服务器正在监听什么端口、IP地址是什么、以及哪些进程在使用它们,这对于你来说都非常重要。

时间: 2024-10-05 05:11:32

登录服务器,首先用到的5个命令的相关文章

免密码登录服务器python脚本

在自动化运维平台没有做完之前,常需要登录服务器做很多维护操作,每次找好长好长的密码,那么多服务器,你会疯掉的,所以瞎搞了以下脚本.先解一下燃眉之急,哈哈 cat login_root.exp #!/usr/bin/expect -c set IP [lindex $argv 0] set PWD [lindex $argv 1] set timeout 2 spawn ssh [email protected]$IP expect "*yes/no*" {send "yes\

使用GO语言灵活批量ssh登录服务器执行操作

摘要: 在工作中时常需要登录服务器做一系列操作,每次输入ssh xxx总是很麻烦.这时候为什么不考虑写一个通用的小脚本呢? go语言是一门新兴语言,能够在很多地方发挥总用.初学go语言,做了这么一个小工具,也算是练练手了. 这个小程序实现的功能是从用户指定的文件中读取相关配置,然后根据用户指令执行相关操作. 代码如下: package main import ( "fmt" "golang.org/x/crypto/ssh" "os" "

mac ssh 免密码登录服务器

刚接触mac不久,在使用中自己遇到的一些小问题,现在一一记录下来,供其他人参考和自己学习. ssh命令:ssh (-P端口)用户名@远程服务器IP. 要实现ssh登录服务器,首先就要保证mac和服务器的ssh服务是开启的,它们的相关的命令如下: linux:service sshd start (start:开启 stop:关闭 restart:重启 status:查看服务状态:知道的忽略) Mac :1.编辑/etc/sshd_config文件,注释掉 #ForceCommand /usr/l

如何使用puttygen密钥远程登录服务器

使用putty远程登录工具登录服务器的时候需要输入账户和密码,但是相应的,服务器所对应的账户和密码有泄漏的风险,所以我们用putty所带的puttygen工具来生成密钥登录,增加安全性. 打开puttygen后,点击Generate按钮生成密钥,如图 并且把 以ssh-rsa开头的那部分复制下来 在 输入你的密钥密码,然后点 Save private key 将密钥保存到本地电脑中. 然后用putty登录你的服务器账号并且在账号的家目录下做如下操作:如图 并且执行iptables -F serv

禁止外网ssh登录服务器

公司搭建vpn后,要控制外网ssh登录服务器. 用/etc/hosts.allow,/etc/hosts.deny控制 当/etc/hosts.allow与/etc/hosts.deny中有相同项时,以hosts.deny为准. 1.允许内网登录: vim /etc/hosts.allow sshd:10.0.5.0/255.255.255.0  ###sshd服务,允许10.0.5.0网段登录 ################################### hosts.allow格式:

Linux采用非用户密码登录服务器

主要思想:利用ssh-keygen生成rsa密钥对,具体有两种方式 一. 由客户机生成密钥对,将对应的"锁"给服务器(登录目标) 1. 客户机生成密钥对,生成密钥对默认路径~/.ssh,提示输入密钥对密码,若输入为空,则登录时无需密码.将会在.ssh文件夹中生成id_rsa和id_rsa.pub文件 ssh-keygen 2. 进入.ssh目录 cd ~/.ssh/ 3. 将公钥文件("锁"文件)id_rsa.pub复制到服务器(登录目标).ssh文件中 scp i

ssh远程登录原理以及putty免密码验证登录服务器

作为一名运维人员登录服务器这个动作,比我们吃饭喝水的频率要来得高.一般来说没人整天在机房管理着公司服务器的吧,机房这个地方为了咱们的健康生活能少呆还是尽量少呆吧,毕竟辐射这东西是积累伤. 我们通常是通过终端远程控制服务器进行着管理工作,早先的终端是通过telnet协议传输来完成远程登录的.可是telnet协议在网上是明文传输的,随便在数据包经过的地方装个抓包工具一抓就能够获取到你服务器的账号密码.现在搞网络安全测评的评估的一条重要标准就是看你网络设备跟服务器里面的telnet服务关掉没. 为了解

登录服务器windows2008出现:远程桌面服务当前正忙,因此无法完成您尝试执行的任务。

问题:有段时间登录服务器总是提示:远程桌面服务当前正忙,因此无法完成您尝试执行的任务. 在微软找到的原因是:Csrss.exe 进程和某些应用程序 (例如,Microsoft Excel 或 Microsoft Visio) 之间发生的死锁情况下会出现此问题. 解决:下载一个修复补丁,安装后重启服务器即可. 具体信息在:  http://support.microsoft.com/kb/2661332/zh-cn 附件补丁:http://pan.baidu.com/s/1gdmXcOj

Ubuntu下通过SSH远程登录服务器的方法

1. 首先在服务器上安装ssh的服务器端.$ sudo aptitude install openssh-server 2. 启动ssh-server.$ /etc/init.d/ssh restart 3. 确认ssh-server已经正常工作.$ netstat -tlptcp6 0 0 *:ssh *:* LISTEN -看到上面这一行输出说明ssh-server已经在运行了. 4. 在Ubuntu客户端通过ssh登录服务器.假设服务器的IP地址是192.168.0.103,登录的用户名是

putty使用密钥登录服务器

1.通过putty连接服务器,默认端口为22,如果需要更改端口号则如下: 2. 1.安装完putty中会有6个程序 2.选中最后一个puttygen,进入后选择generate生成公钥,在生成过程中需要不停晃动鼠标 1.输入私钥密码及名称(名称可以随意填写),填写完成后选择save private key,并保存私钥路径,密码为098098 进入服务器,在root目录下创建.ssh/authorized_keys,将刚才在putty中生成的公钥保存到.ssh/authorized_keys中 [