SSH批量分发与管理

1.利用root做ssh key验证
优点:简单,易用
缺点:安全差,同时无法禁止root远程连接
企业应用:80%的企业
2.利用普通用户来做,思路是先把分发的文件拷贝到服务器用户家目录,然后sudo提权
拷贝到服务器的对应权限目录
优点:安全
缺点:配置复杂
3.拓展:同方案2,只是不用sudo,而是设置suid对固定命令提权
优点:相对安全
缺点:复杂,安全性较差。任何人都可以处理带有suid权限的命令。

建议:
a.追求简单,选 1
b.追求安全建议,选 2



重要安全思想:
不管用什么方法,我们一定要管理好中心分布服务器A,因为它的权限很大,很重要。那么如何,管理好中心分布服务器A呢?
1)取消中心分布服务器的外网IP。
2)开启防火墙禁止SSH对外用户登陆。并仅给某一台后端无外网机器访问。然后这台后端的服务器依然没有外网IP,并
且仅能通过VPN连接,这样中心分布服务器就相对安全了。

企业级生产场景批量管理,自动化管理方案:
1.最简单最常用 ssh key,功能最强大的。一般中小型企业会用,50-100台以下。
2.sina cfengine较早的批量管理工具。现在基本没有企业用。
3.门户级别比较流行的,puppet批量管理工具,复杂,笨重。
4.saltstack批量管理工具,特点:简单,功能强大(配置复杂)
5.http+cron

SSH登陆服务器慢的问题解决
三种可能情况:
1.服务器上的/etc/resolv.conf中有错误的dns地址,或为内网地址或为不可用dns地址
2.sshd_config配置文件中使用了UseDNS yes(若为注释的,默认也是启用的),使用UseDNS no
3.sshd_config配置文件中使用了GSSAPIAuthentication yes,默认是这样的,改为:GSSAPIAuthentication no,或者注释掉,

SSH慢的原因(常见)
故障现象
执行ssh root@192.168.0.8反应非常的慢,等很久的时间才连接进去
故障分析
一般是hosts文件的127.0.0.1和主机名不对应导致的
解决方法
1.hosts文件主机名不对应导致的
2.sshd_conf配置文件的验证没有取消掉
#################################################################################################################
课前思想
1.道德品质存在缺陷之人不能用(小人不能用)
2.一个不懂得感恩之人不能培养(白眼狼)
3.一个本身素质不高,但又缺乏接受他人调教之人,不值得去培养(固本自封之人不堪培养)
4.接受能力,领悟能录不高,不堪培养(”朽木“之人不堪任用)
5.一个没有忠诚度而言之人不能任用的。(”墙头草“之人不堪任用)
###############################################################################################
[oldboy@backup ~]$ sh -h fenfa2.sh 
: 没有那个文件或目录etc/init.d/functions
[oldboy@backup ~]$ dos2unix fenfa2.sh 
dos2unix: converting file fenfa2.sh to UNIX format ...
[oldboy@backup ~]$ sh fenfa2.sh 
USAGE:/bin/sh fenfa2.sh arg1 arg2
老铁 我刚将脚本完成成功后 然后sz上传 再rz下载 然后报上面的错 ,然后一个前辈说上传后格式可能变了 然后用上述的方法解决
在Windows下面编辑的要到linux中用需要unix2dos转
反之用dos2unix
###############################################################################################
[root@backup ~]# /sbin/ifconfig eth0|sed -rn 's#^.*dr:(.*)  Bc.*$#\1#gp'
10.0.0.41
sendmail 发送邮件的两种方法
expect非交互式批量分发密钥
###############################################################################################
同步方法
scp NFS SFTP http samba rsync drbd(基于文件系统同步)
企业常用rsync+inotify实现实时同步
本主机备份
[root@nfs01 opt]# cd /opt/
[root@nfs01 opt]# mkdir oldboy
[root@nfs01 opt]# touch  oldboy/test.txt
[root@nfs01 opt]# chmod -R 700 oldboy/
[root@nfs01 opt]# ls -l
总用量 4
drwx------ 2 root root 4096 5月  28 15:04 oldboy
[root@nfs01 opt]# tree
.
└── oldboy
    └── test.txt


1 directory, 1 file
[root@nfs01 opt]# ls -l oldboy/test.txt 
-rwx------ 1 root root 0 5月  28 15:04 oldboy/test.txt
[root@nfs01 opt]# rsync -avz ../opt/ /tmp/
sending incremental file list
./
oldboy/
oldboy/test.txt


sent 114 bytes  received 38 bytes  304.00 bytes/sec
total size is 0  speedup is 0.00
[root@nfs01 opt]# cd /tmp/
[root@nfs01 tmp]# ll
总用量 8
-rw-r--r-- 1 root root  158 5月  26 14:39 hosts
drwx------ 2 root root 4096 5月  28 15:04 oldboy
[root@nfs01 tmp]# 
[root@nfs01 tmp]# ll
总用量 8
-rw-r--r-- 1 root root  158 5月  26 14:39 hosts
drwx------ 2 root root 4096 5月  28 15:04 oldboy
[root@nfs01 tmp]# tree
.
├── hosts
└── oldboy
    └── test.txt


1 directory, 2 files
[root@nfs01 tmp]# ls -l oldboy/
总用量 0
-rwx------ 1 root root 0 5月  28 15:04 test.txt
[root@nfs01 tmp]# cd -
/opt




rsyncd 配置使用
查询rpm -qa | grep rsync
配置文件需手动创建:
  touch /etc/rsyncd.conf
配置/etc/rsyncd.conf:
 (全局配置)
  uid = root  //rsync以root用户身份运行
  gid = root  //rsync以root用户组身份运行
  port = 873  //rsync守护进程监听的端口号
  address = 172.30.100.111  //指定服务器运行的IP地址
  pid file = /var/run/rsyncd.pid  //rsync的守护进程将其PID写入指定的文件
  use chroot = yes  //是否启用chroot功能,如果"use chroot"指定为true,那么rsync在传输文件以前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要以root权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true。
  max connections = 300  //最大并发连接数
  timeout = 600  //超时时间
  lock file=/var/run/rsyncd.lock  //lock文件路径
  log file = /var/log/rsyncd.log  //log文件路径
  log format = %t %a %m %f %b  //log格式
 (用户配置)
  [172_30_100_112]  //模块名称
  path = /app/111  //真实路径
  comment = Backup Log  //注解
  read only = no  //是否允许客户上传文件
  list = yes  //是否把rsync 服务器上提供同步数据的目录显示
  ignore errors = yes  //忽略IO错误
  auth users = RsyncUser  //认证用户名
  secrets file = /etc/rsync-applog.pas  //密码文件路径
  hosts allow = 172.30.100.112  //白名单
  hosts deny = *  //黑名单
配置服务器端密码文件:
  touch /etc/rsync-applog.pas
  RsyncUser:ZTkxywbz  一行为一组,用户名在前,密码在后,冒号隔开。
  修改文件权限(必须为600):
    chmod 600 /etc/rsync-applog.pas
配置客户端密码文件:
  touch /etc/rsync-applog.pas
  ZTkxywbz  只输入密码
  修改文件权限(必须为600):
    chmod 600 /etc/rsync-applog.pas
查看服务是否启动:
  ps -ef | grep rsync
若没启动,启动服务:
  /usr/bin/rsync --daemon --config=/etc/rsync.conf
再次查看是否启动成功:
  ps -ef | grep rsync

rsync ≥ rm cp scp
###############################################################################################

uniq:去重     -c:查看重复次数 ,计数
[root@nfs01 ~]# cat oldboy.txt 
10.0.0.7
10.0.0.7
10.0.0.7
[root@nfs01 ~]# uniq  oldboy.txt 
10.0.0.7
[root@nfs01 ~]# uniq -c oldboy.txt 
      3 10.0.0.7
sort:排序 -n 顺序排序   -r 倒序排序
[root@nfs01 ~]# vim oldboy.txt 
10.0.0.7
10.0.0.7
10.0.0.7
10.0.0.7
10.0.0.7
10.0.0.8
10.0.0.7
10.0.0.7
10.0.0.9


[root@nfs01 ~]# sort oldboy.txt 
10.0.0.7
10.0.0.7
10.0.0.7
10.0.0.7
10.0.0.7
10.0.0.7
10.0.0.7
10.0.0.8
10.0.0.9
[root@nfs01 ~]# sort -nr oldboy.txt 
10.0.0.9
10.0.0.8
10.0.0.7
10.0.0.7
10.0.0.7
10.0.0.7
10.0.0.7
10.0.0.7
10.0.0.7


[root@nfs01 ~]# sort -t " " -k 2  oldboy.txt.1   -t 指定分隔符  -k指定字段
10.0.0.7 a
10.0.0.7 k 
10.0.0.9 l
10.0.0.7 m
10.0.0.7 n
10.0.0.8 o
10.0.0.7 q
10.0.0.7 y
10.0.0.7 z


  -k, --key=位置1[,位置2] 在位置1 开始一个key,在位置2 终止(默认为行尾)
[root@nfs01 ~]# cat oldboy.log 
http://www.etiantian.org/index.html
http://www.etiantian.org/1.html
http://post.etiantian.org/index.html
http://mp3.etiantian.org/index.html
http://www.etiantian.org/3.html
http://post.etiantian.org/2.html
[root@nfs01 ~]# awk -F "/" '{print $3}' oldboy.log 
www.etiantian.org
www.etiantian.org
post.etiantian.org
mp3.etiantian.org
www.etiantian.org
post.etiantian.org
[root@nfs01 ~]# awk -F "/" '{print $3}' oldboy.log |sort
mp3.etiantian.org
post.etiantian.org
post.etiantian.org
www.etiantian.org
www.etiantian.org
www.etiantian.org
[root@nfs01 ~]# awk -F "/" '{print $3}' oldboy.log |sort|uniq
mp3.etiantian.org
post.etiantian.org
www.etiantian.org
[root@nfs01 ~]# awk -F "/" '{print $3}' oldboy.log |sort|uniq -c
      1 mp3.etiantian.org
      2 post.etiantian.org
      3 www.etiantian.org
[root@nfs01 ~]# awk -F "/" '{print $3}' oldboy.log |sort|uniq -c |sort -rn
      3 www.etiantian.org
      2 post.etiantian.org
      1 mp3.etiantian.org
[root@nfs01 ~]# awk -F "/" '{print $3}' oldboy.log |sort -rn|uniq -c 
      3 www.etiantian.org
      2 post.etiantian.org
      1 mp3.etiantian.org
[root@nfs01 ~]# awk -F "/" '{print $3}' oldboy.log |sort -rn -k1|uniq -c 
      3 www.etiantian.org
      2 post.etiantian.org
      1 mp3.etiantian.org
[root@nfs01 ~]# awk -F "/" '{++S[$3]} END {for (key in S) print S[key],key}' oldboy.log |sort -rn -k1
3 www.etiantian.org
2 post.etiantian.org
1 mp3.etiantian.org
[root@nfs01 ~]# awk -F "/" '{++S[$3]} END {for (key in S) print key,S[key]}' oldboy.log |sort -rn -k1
www.etiantian.org 3
post.etiantian.org 2
mp3.etiantian.org 1


###############################################################################################

linux系统软件包安装方式

1.源码安装

2.yum或rpm安装

3.高级安装结合了编译和yum/rpm的双重优点

何时选择用上述三种方法
rpm -e --nodeps     不考虑依赖直接卸载掉
rpm -qa 检查是否安装
 
安装软件比如apache必看的两个文件:
进解压后的http目录下看
README
INSTALL
告诉你怎么安装
apache的模式两种 
 
yum install -y zlib zlib-devel

一般出现以下错误:
cheching for zlib location ....not founf 
就需要安装zlib zlib-devel  但主要的是zlib-devel 前面的zlib可以不要,这就是经验

大多数软件都需要gcc编译来生成需要的东西
设置软连接 这又是经验

###############################################################################################
教新版apache的编译安装需要的方法 在我博客上有
https://blog.csdn.net/zisefeizhu/article/details/80218087
*/apachectl -t -l -M      graceful平滑重启
ps -ef |grep
lsof -i :
wget 服务端IP 检查服务是否完好
curl
strace 命令:跟踪进程的使用情况  高级命令 必会
一般慢都是反解了。在/etc/hosts文件中加入解析
怎样添加模块?



bin
conf
htdocs
htpasswd
extra
    httpd-mpm.conf  
httpd-vhosts.conf
 
虚拟主机是什么?怎么用?虚拟主机分几类?怎么配置


所谓的基于XX,就是靠XX来区分站点

apache日志轮询?
apache怎么隐藏版本号?怎么隐藏重要信息 或修改总要信息?
###############################################################################################
mysql 是什么?怎么安装?怎么简单使用?
mysql怎样下载?
安装mysql出错的解决思路
mysqladmin-uroot -p
什么是编译安装?怎么编译安装?思路?一般软件的编译安装方法
选择是什么版本的mysql?为什么?现在企业用的版本有哪些?版本所占的百分比
yum install -y ncurese-devel
echo $?怎么用?作用?
什么是免编译?怎么免编译?
mysql安装后默认的模板?怎么选?硬件配置决定模板
mysql初始化安装 怎么安装?怎么初始化数据目录
怎么判断是否错误?
mysql的启动脚本?怎么调到 /etc/init.d/mysqld 怎样使其执行 +x
怎样将mysqld加到环境变量里
怎样开机自启动
怎样杀死mysqld   
标准杀死:mysqladmin shutdown
一些mysql的简单使用方法
怎么修改,创建密码,怎么查看表?怎样修改表?怎么创建,修改,删除用户,查看版本
有关LAMP请看我的下面博文
https://blog.csdn.net/zisefeizhu/article/details/80218087
这几条语句的作用
/application/mysql/bin/mysqld_safe --skip-grant-table &  
update mysql.user set password=PASSWORD("oldboy123") where host='localhost' and user='root';
flush privileges;
###############################################################################################
php动态解析软件安装。这不部分内容在我的博文:https://blog.csdn.net/zisefeizhu/article/details/80218087
与php安装有关的库?在我的博文里有最新的所需库
为什么需要这些库?即这些库的作用?了解即可
php怎么编译安装?请看我的博客https://blog.csdn.net/zisefeizhu/article/details/80218087
什么是编译安装?怎么知道安装软件时要怎样编译安装
php模块,区别?
小结:
1.正式配置文件一般关闭log,不输出log
2.默认配置文件路径/application/php/lib/php.ini


以上apache mysql php 的简单配置和应用请看https://blog.csdn.net/zisefeizhu/article/details/80218087
#####################################################################################
在-04学习中,最大的收获莫过于自己看官方文档,发现了一些视频书上没有的知识,有些问题可以按照自己的思路想法来解决
学习这东西主要还是靠自己摸索
每一遍学习都有收获,意想不到!
下面的主要目标是:进行预习期末考试任务
在接下来的时间内 主要学到期中架构,可能在放假之前会有linux打怪升级之旅-05出现
看最旧的视频学最新的技术

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值