1. 多台Linux服务器之间,文件的相互拷贝
# 经常使用的是scp命令(secure copy)
## 1.单文件的复制
scp /tmp/local.txt root@192.168.1.3:/root # 将本地机器/tmp/local.txt复制到远程服务器的/root目录下
scp root@192.168.1.3:/tmp/local.txt /root # 将远程机器/tmp/remote.txt复制到本地服务器/root目录下
## 2.文件夹的复制
### 建议对于文件夹先进行加压缩操作
tar -czvf /usr/local/test.tar /usr/local/test/ #仅打包,不进行压缩。将/usre/local/test/文件夹,打包test.tar
zip 压缩包.zip /usr/local/test/*.jpg # zip格式的压缩,需要先下载zip for linux
### 对文件夹的进行传输
scp -rp /usr/local/test root@192.168.1.3:/root # 将本地机器/tmp目录(保留原文件的修改时间,访问时间和访问权限)复制到远程服务器的/root目录下
scp -P 63225 /usr/local/test.tar root@192.168.1.3:/root # 本地机器/tmp/local.txt复制到远程服务器(端口为63225)的/root目录下
### 对压缩文件进行解压缩
tar -zxvf /root/test.tar -C /usr/local/test/
# ssh访问
ssh -p port user_name@remote_ip
sftp -oPort=22 user_name@remote_ip
ssh omd@192.168.1.100 -o stricthostkeychecking=no # 首次登陆免输yes登录
ssh omd@192.168.1.100 "ls /home/omd" # 当前服务器A远程登录服务器B后执行某个命令
ssh omd@192.168.1.100 -t "sh /home/omd/ftl.sh" # 当前服务器A远程登录服务器B后执行某个脚本
2. 用户组合权限
# 1. 改变文件的所属组
chgrp [-R] dirname/filename # -R 进行递归(recursive); 目录下所欲的文档、目录更新成新的组群。
chown [-R] 账号名称:组名 档案或者目录
chown -R fred:fred /usr/local/test
chmod [-R] xyz档案或目录
## 权限管理
## u|g|0|a --user|group|other|all
chmod -R u+x /usr/local/test
chmod -R a+wx /usr/local/test
# chown
#必要参数:
# -c 显示更改的部分的信息
# -f 忽略错误信息
# -h 修复符号链接
# -R 处理指定目录以及其子目录下的所有文件
# -v 显示详细的处理信息
# -deference 作用于符号链接的指向,而不是链接文件本身
sudo chown -R -v user:group dir_name/
# chmod
# u 表示“用户(user)”,即文件或目录的所有者。
# g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
# o 表示“其他(others)用户”。
# a 表示“所有(all)用户”。它是系统默认值。
chmod 777 file; # 将文件的权限设置成: wrxwrxwrx,所有人都有读写执行权限
chmod +x file; # 给所属用户添加执行徐安全
chmod a-x file; # 删除所有用户的执行权限
chmod g=rx file; # 给所属组设置读和执行权限
# useradd 添加用户
# -g 属组
# -u 设置uid
# -m 创建家目录
# -M 没有家目录
# -G 指定属于多个组
# -s 指定登录shell
# -d 指定家目录
# -c 注释
# -D 改变它默认的属性
# -e 指定的日期是帐号失效的日期
useradd abc | 还有 usermod userdel
# passwd 添加密码
# -l:锁定已经命名的账户名称
# -u:解开账户锁定状态
# -x, --maximum=DAYS:密码使用最大时间(天)
# -n, --minimum=DAYS:密码使用最小时间(天)
# -d:删除使用者的密码
# -S:检查指定使用者的密码认证种类
# --stdin:非交互式修改/设置密码,弊端是操作日志能查密码,用history -c 干掉。
passwd abc
# groupadd 创建用户组
# -g:指定新建用户组的gid;
# -r:创建系统工作组,系统用户的组ID小于500;
# -K:覆盖配置文件“/ect/login.defs”;
# -o:允许添加组ID号不唯一的工作组。
groupadd -g 344 bpg; # 创建一个id为344,名称为bpg的组
# groupmod 修改组
# -g: GID 为用户组指定新的组标识号。
# -o:与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
# -n:新用户组 将用户组的名字改为新名字
groupmod -g 365 -n bpg1 bpg # 修改组标签,同时修改组名。
3.more 和 less命令
# 一页一页的显示内容: more
more /usr/local/test/a.txt
## 参数作用
### 空格键(space):代表向下翻一页;
### Enter: 代表向下翻[一行]
### :f 立即显示文件名以及目前显示的行数
### q 代表立刻离开more,不再显示该档案内容
### b 或者 [ctrl]-b 代表往回翻页;该动作只对档案有用,对管线无用。
# less 比more更好用,它可以往前翻页
less /usr/local/test/a.txt
## 参数说明
### 空格键(space) :向下翻页
### pagedown 、 pageup :向下、向上翻动一页
### /字符串 :向下搜索[字符串]
### ?字符串 :向上搜索[字符串]
### n :重复前一个搜索; N:反向重复前一个搜索
### q:离开less这个程序。
4. 日志的基本操作
# 日志查询
# 1.按照名字查找文件或目录
find ./ -name test
# 2.在日志中查找特定的错误信息【常用】
find / -type f -name '*.log' | xargs grep "Error Message" # 从根目录开始查询
find . -name "*.log" | xargs grep "Error Message" # 从当前目录查找扩展为log的文本中,找错误信息
# grep的用法
grep [-acinv] [--color=auto] '搜寻字符串' filename
# 选项与参数:
# -a :将 binary 文件以 text 文件的方式搜寻数据
# -c :计算找到 '搜寻字符串' 的次数
# -i :忽略大小写的不同,所以大小写视为相同
# -n :顺便输出行号
# -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
# --color=auto :可以将找到的关键词部分加上颜色的显示喔!
# 1.grep从文件内容中查找指定字符串的行:
grep "the rm contact" /.in # 在当前目录里第一级文件夹中寻找包含指定字符串的.in文件
grep -in "被查找的字符串" 文件名 # 查找时不区分大小写、并且显示行号
grep root /etc/passwd | cat /etc/passwd | grep root # 在目录/etc/passwd下,找带root的行
5. 服务器性能检测
# 1.查看CPU的个数,CPU核数,CPU型号
cat /proc/cpuinfo | grep "physical id" | uniq | wc -l #查看cpu的个数
cat /proc/cpuinfo | grep "cpu cores" | uniq #查看cpu的核数
cat /proc/cpuinfo | grep 'model name' |uniq #查看cpu的型号
# 2.查看内存情况
cat /proc/meminfo | grep MemTotal #查看内存总数(单位为K)
free -h #查看内存情况(单位为G)
grep MemTotal /proc/meminfo # 查看内存总量
grep MemFree /proc/meminfo # 查看空闲内存量
# 3. 硬盘情况
fdisk -l | grep Disk #查看硬盘情况
fdisk -l # 查看所有分区
swapon -s # 查看所有交换分区
hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
dmesg | grep IDE # 查看启动时IDE设备检测状况网络
# 4. 查看进程和网络
ifconfig # 查看所有网络接口的属性
iptables -L # 查看防火墙设置
route -n # 查看路由表
netstat -unltp # 查看所有监听端口
netstat -antp # 查看所有已经建立的连接
netstat -s # 查看网络统计信息进程
ps -ef # 查看所有进程
# 5. 查看用户信息
w # 查看活动用户
id # 查看指定用户信息
last # 查看用户登录日志
cut -d: -f1 /etc/passwd # 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组
crontab -l # 查看当前用户的计划任务服务
# 6.列出一些服务器信息
chkconfig –list # 列出所有系统服务
chkconfig –list | grep on # 列出所有启动的系统服务程序
cat /proc/cpuinfo # 查看CPU相关参数的linux系统命令
cat /proc/partitions # 查看linux硬盘和分区信息的系统信息命令
cat /proc/meminfo # 查看linux系统内存信息的linux系统命令
cat /proc/version # 查看版本,类似uname -r
cat /proc/ioports # 查看设备io端口
cat /proc/interrupts # 查看中断
cat /proc/pci # 查看pci设备的信息
cat /proc/swaps # 查看所有swap分区的信息
# 7.TOP指令监控
# top [-] [d] [p] [q] [c] [C] [S] [s] [n]
# 参数说明:
# d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
# p:通过指定监控进程ID来仅仅监控某个进程的状态。
# q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
# S:指定累计模式。
# s:使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
# i:使top不显示任何闲置或者僵死进程。
# c:显示整个命令行而不只是显示命令名。
## 常用操作:
top #每隔5秒显式所有进程的资源占用情况
top -d 2 #每隔2秒显式所有进程的资源占用情况
top -c # 每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
top -p 12345 -p 6789 #每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -d 2 -c -p 123456 #每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数
top -H -p pid #查看其所有活跃的线程资源消耗情况
## 第一行是任务队列信息。内容如下:
# top - 10:37:03 up 10 days, 18:33, 0 users, load average: 0.24, 0.42, 0.62
#分别表示:当前时间 系统运行时间,格式化为时:分 登录用户 系统负载(1分钟、5分钟、15分钟前到现在的平均值)
## 第二进程的信息。内容如下:
# Tasks: 3 total, 1 running, 2 sleeping, 0 stopped, 0 zombie
# 总进程数 正在运行进程数 睡眠进程数 停止进程数 僵尸进程数
## 第三行 CPU的信息,当有多个CPU时,这些内容可能会超过两行,内容如下:
# %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
# us-用户空间占用 sy-内核空间占用 ni-用户进程空间内改变优先级进程占用 id-空闲占用 wa-等待输入输出占用 hi-硬件终端占用 si-软中断占用 st-虚拟机占用
## 第四行为内存信息。内容如下:
# KiB Mem : 32781764 total, 240308 free, 14483908 used, 18057548 buff/cache
# 总内存 空闲内存 已使用内存 用作内核缓存的内存
## 第五行为内存信息。内容如下:
# KiB Swap: 0 total, 0 free, 0 used. 17800264 avail Mem
# 交换区总量 空闲交换区总量 使用交换区总量 缓冲交换区总量