1. 多台Linux服务器之间,文件的相互拷贝

  1. # 经常使用的是scp命令(secure copy)
  2. ## 1.单文件的复制
  3. scp /tmp/local.txt root@192.168.1.3:/root # 将本地机器/tmp/local.txt复制到远程服务器的/root目录下
  4. scp root@192.168.1.3:/tmp/local.txt /root # 将远程机器/tmp/remote.txt复制到本地服务器/root目录下
  5. ## 2.文件夹的复制
  6. ### 建议对于文件夹先进行加压缩操作
  7. tar -czvf /usr/local/test.tar /usr/local/test/ #仅打包,不进行压缩。将/usre/local/test/文件夹,打包test.tar
  8. zip 压缩包.zip /usr/local/test/*.jpg # zip格式的压缩,需要先下载zip for linux
  9. ### 对文件夹的进行传输
  10. scp -rp /usr/local/test root@192.168.1.3:/root # 将本地机器/tmp目录(保留原文件的修改时间,访问时间和访问权限)复制到远程服务器的/root目录下
  11. scp -P 63225 /usr/local/test.tar root@192.168.1.3:/root # 本地机器/tmp/local.txt复制到远程服务器(端口为63225)的/root目录下
  12. ### 对压缩文件进行解压缩
  13. tar -zxvf /root/test.tar -C /usr/local/test/
  1. # ssh访问
  2. ssh -p port user_name@remote_ip
  3. sftp -oPort=22 user_name@remote_ip
  4. ssh omd@192.168.1.100 -o stricthostkeychecking=no # 首次登陆免输yes登录
  5. ssh omd@192.168.1.100 "ls /home/omd" # 当前服务器A远程登录服务器B后执行某个命令
  6. ssh omd@192.168.1.100 -t "sh /home/omd/ftl.sh" # 当前服务器A远程登录服务器B后执行某个脚本

2. 用户组合权限

  1. # 1. 改变文件的所属组
  2. chgrp [-R] dirname/filename # -R 进行递归(recursive); 目录下所欲的文档、目录更新成新的组群。
  3. chown [-R] 账号名称:组名 档案或者目录
  4. chown -R fred:fred /usr/local/test
  5. chmod [-R] xyz档案或目录
  6. ## 权限管理
  7. ## u|g|0|a --user|group|other|all
  8. chmod -R u+x /usr/local/test
  9. chmod -R a+wx /usr/local/test
  1. # chown
  2. #必要参数:
  3. #   -c 显示更改的部分的信息
  4. #   -f 忽略错误信息
  5. #   -h 修复符号链接
  6. #   -R 处理指定目录以及其子目录下的所有文件
  7. #   -v 显示详细的处理信息
  8. #   -deference 作用于符号链接的指向,而不是链接文件本身
  9. sudo chown -R -v user:group dir_name/
  10. # chmod
  11. # u 表示“用户(user)”,即文件或目录的所有者。
  12. #  g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
  13. #  o 表示“其他(others)用户”。
  14. #  a 表示“所有(all)用户”。它是系统默认值。
  15. chmod 777 file; # 将文件的权限设置成: wrxwrxwrx,所有人都有读写执行权限
  16. chmod +x file; # 给所属用户添加执行徐安全
  17. chmod a-x file; # 删除所有用户的执行权限
  18. chmod g=rx file; # 给所属组设置读和执行权限
  1. # useradd 添加用户
  2. # -g 属组
  3. # -u 设置uid
  4. # -m 创建家目录
  5. # -M 没有家目录
  6. # -G 指定属于多个组
  7. # -s 指定登录shell
  8. # -d 指定家目录
  9. # -c 注释
  10. # -D 改变它默认的属性
  11. # -e 指定的日期是帐号失效的日期
  12. useradd abc | 还有 usermod userdel
  13. # passwd 添加密码
  14. # -l:锁定已经命名的账户名称
  15. # -u:解开账户锁定状态
  16. # -x, --maximum=DAYS:密码使用最大时间(天)
  17. # -n, --minimum=DAYS:密码使用最小时间(天)
  18. # -d:删除使用者的密码
  19. # -S:检查指定使用者的密码认证种类
  20. # --stdin:非交互式修改/设置密码,弊端是操作日志能查密码,用history -c 干掉。
  21. passwd abc
  22. # groupadd 创建用户组
  23. # -g:指定新建用户组的gid;
  24. # -r:创建系统工作组,系统用户的组ID小于500;
  25. # -K:覆盖配置文件“/ect/login.defs”;
  26. # -o:允许添加组ID号不唯一的工作组。
  27. groupadd -g 344 bpg; # 创建一个id为344,名称为bpg的组
  28. # groupmod 修改组
  29. # -g: GID 为用户组指定新的组标识号。
  30. # -o:与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
  31. # -n:新用户组 将用户组的名字改为新名字
  32. groupmod -g 365 -n bpg1 bpg # 修改组标签,同时修改组名。

3.more 和 less命令

  1. # 一页一页的显示内容: more
  2. more /usr/local/test/a.txt
  3. ## 参数作用
  4. ### 空格键(space):代表向下翻一页;
  5. ### Enter: 代表向下翻[一行]
  6. ### :f 立即显示文件名以及目前显示的行数
  7. ### q 代表立刻离开more,不再显示该档案内容
  8. ### b 或者 [ctrl]-b 代表往回翻页;该动作只对档案有用,对管线无用。
  1. # less 比more更好用,它可以往前翻页
  2. less /usr/local/test/a.txt
  3. ## 参数说明
  4. ### 空格键(space) :向下翻页
  5. ### pagedown 、 pageup :向下、向上翻动一页
  6. ### /字符串 :向下搜索[字符串]
  7. ### ?字符串 :向上搜索[字符串]
  8. ### n :重复前一个搜索; N:反向重复前一个搜索
  9. ### q:离开less这个程序。

4. 日志的基本操作

  1. # 日志查询
  2. # 1.按照名字查找文件或目录
  3. find ./ -name test
  4. # 2.在日志中查找特定的错误信息【常用】
  5. find / -type f -name '*.log' | xargs grep "Error Message" # 从根目录开始查询
  6. find . -name "*.log" | xargs grep "Error Message" # 从当前目录查找扩展为log的文本中,找错误信息
  1. # grep的用法
  2. grep [-acinv] [--color=auto] '搜寻字符串' filename
  3. # 选项与参数:
  4. # -a :将 binary 文件以 text 文件的方式搜寻数据
  5. # -c :计算找到 '搜寻字符串' 的次数
  6. # -i :忽略大小写的不同,所以大小写视为相同
  7. # -n :顺便输出行号
  8. # -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
  9. # --color=auto :可以将找到的关键词部分加上颜色的显示喔!
  10. # 1.grep从文件内容中查找指定字符串的行:
  11. grep "the rm contact" /.in # 在当前目录里第一级文件夹中寻找包含指定字符串的.in文件
  12. grep -in "被查找的字符串" 文件名 # 查找时不区分大小写、并且显示行号
  13. grep root /etc/passwd | cat /etc/passwd | grep root # 在目录/etc/passwd下,找带root的行

5. 服务器性能检测

  1. # 1.查看CPU的个数,CPU核数,CPU型号
  2. cat /proc/cpuinfo | grep "physical id" | uniq | wc -l #查看cpu的个数
  3. cat /proc/cpuinfo | grep "cpu cores" | uniq #查看cpu的核数
  4. cat /proc/cpuinfo | grep 'model name' |uniq #查看cpu的型号
  5. # 2.查看内存情况
  6. cat /proc/meminfo | grep MemTotal #查看内存总数(单位为K)
  7. free -h #查看内存情况(单位为G)
  8. grep MemTotal /proc/meminfo # 查看内存总量
  9. grep MemFree /proc/meminfo # 查看空闲内存量
  10. # 3. 硬盘情况
  11. fdisk -l | grep Disk #查看硬盘情况
  12. fdisk -l # 查看所有分区
  13. swapon -s # 查看所有交换分区
  14. hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
  15. dmesg | grep IDE # 查看启动时IDE设备检测状况网络
  16. # 4. 查看进程和网络
  17. ifconfig # 查看所有网络接口的属性
  18. iptables -L # 查看防火墙设置
  19. route -n # 查看路由表
  20. netstat -unltp # 查看所有监听端口
  21. netstat -antp # 查看所有已经建立的连接
  22. netstat -s # 查看网络统计信息进程
  23. ps -ef # 查看所有进程
  24. # 5. 查看用户信息
  25. w # 查看活动用户
  26. id # 查看指定用户信息
  27. last # 查看用户登录日志
  28. cut -d: -f1 /etc/passwd # 查看系统所有用户
  29. cut -d: -f1 /etc/group # 查看系统所有组
  30. crontab -l # 查看当前用户的计划任务服务
  31. # 6.列出一些服务器信息
  32. chkconfig list # 列出所有系统服务
  33. chkconfig list | grep on # 列出所有启动的系统服务程序
  34. cat /proc/cpuinfo # 查看CPU相关参数的linux系统命令
  35. cat /proc/partitions # 查看linux硬盘和分区信息的系统信息命令
  36. cat /proc/meminfo # 查看linux系统内存信息的linux系统命令
  37. cat /proc/version # 查看版本,类似uname -r
  38. cat /proc/ioports # 查看设备io端口
  39. cat /proc/interrupts # 查看中断
  40. cat /proc/pci # 查看pci设备的信息
  41. cat /proc/swaps # 查看所有swap分区的信息
  42. # 7.TOP指令监控
  43. # top [-] [d] [p] [q] [c] [C] [S] [s] [n]
  44. # 参数说明:
  45. # d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
  46. # p:通过指定监控进程ID来仅仅监控某个进程的状态。
  47. # q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
  48. # S:指定累计模式。
  49. # s:使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
  50. # i:使top不显示任何闲置或者僵死进程。
  51. # c:显示整个命令行而不只是显示命令名。
  52. ## 常用操作:
  53. top #每隔5秒显式所有进程的资源占用情况
  54. top -d 2 #每隔2秒显式所有进程的资源占用情况
  55. top -c # 每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
  56. top -p 12345 -p 6789 #每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
  57. top -d 2 -c -p 123456 #每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数
  58. top -H -p pid #查看其所有活跃的线程资源消耗情况
  59. ## 第一行是任务队列信息。内容如下:
  60. # top - 10:37:03 up 10 days, 18:33, 0 users, load average: 0.24, 0.42, 0.62
  61. #分别表示:当前时间 系统运行时间,格式化为时:分 登录用户 系统负载(1分钟、5分钟、15分钟前到现在的平均值)
  62. ## 第二进程的信息。内容如下:
  63. # Tasks: 3 total, 1 running, 2 sleeping, 0 stopped, 0 zombie
  64. # 总进程数 正在运行进程数 睡眠进程数 停止进程数 僵尸进程数
  65. ## 第三行 CPU的信息,当有多个CPU时,这些内容可能会超过两行,内容如下:
  66. # %Cpu(s): 4.7 us, 1.4 sy, 0.0 ni, 92.5 id, 1.1 wa, 0.0 hi, 0.3 si, 0.0 st
  67. # us-用户空间占用 sy-内核空间占用 ni-用户进程空间内改变优先级进程占用 id-空闲占用 wa-等待输入输出占用 hi-硬件终端占用 si-软中断占用 st-虚拟机占用
  68. ## 第四行为内存信息。内容如下:
  69. # KiB Mem : 32781764 total, 240308 free, 14483908 used, 18057548 buff/cache
  70. # 总内存 空闲内存 已使用内存 用作内核缓存的内存
  71. ## 第五行为内存信息。内容如下:
  72. # KiB Swap: 0 total, 0 free, 0 used. 17800264 avail Mem
  73. # 交换区总量 空闲交换区总量 使用交换区总量 缓冲交换区总量