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_ipsftp -oPort=22 user_name@remote_ipssh 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|allchmod -R u+x /usr/local/testchmod -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命令
# 一页一页的显示内容: moremore /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# 交换区总量 空闲交换区总量 使用交换区总量 缓冲交换区总量