centos没有 expect(centos无法启动)

大家好,今天给各位分享centos没有 expect的一些知识,其中也会对centos无法启动进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

mac 怎么登录到 linux 服务器并传输文件

在MAC上连接到LINUX的操作:

1、从bingcc官网把LINUX实例的密钥下载到mac本地并保存到了下载目录:

其目录为:“/Users/username/Downloads”(这里username为你当前苹果机的用户名)”

2、Finder->应用程序->使用工具下找到终端,双击打开:

3、输入命令(绿色部分为命令,括号内为注释):

Lau-TensionmatoMac:~Tension$cd

~/downloads(切换到下载路径)

Lau-TensionmatoMac:Downloads Tension$ls(显示路径下的文件)

mykey.txt

4、把密钥文件mykey.txt移动到“~.ssh”目录下并重命名为id_rsa

Lau-TensionmatoMac:Downloads Tension$mv

mykey.txt

~/.ssh(移动密钥文件)

Lau-TensionmatoMac:Downloads Tension$cd

~/.ssh(切换到“~/.ssh”路径下)

Lau-TensionmatoMac:.ssh Tension$ls(显示路径下的文件)

known_hosts

mykey.txt

Lau-TensionmatoMac:.ssh Tension$mv

mykey.txt

id_rsa(将密钥文件改名为id_rsa)

Lau-TensionmatoMac:.ssh Tension$ls(显示路径下的文件)

id_rsa

known_hosts

5、接下来可能会出现如下提示(没有出现提示的可以直接忽略)。输入yes,机器将远程ip信息保存到了“~/.ssh”目录下的known_hosts文件上,下次连接同一ip时因保留了信息则不会再出现提示。

The authenticity of host'113.108.230.87(113.108.230.87)' can't be established.

RSA key fingerprint is 03:8a:8e: 30:65:7c:b6:20:2c:67:13:5d:e6:78:32:47.

Are you sure you want to continue connecting(yes/no)?yes

Warning: Permanently added'113.108.230.87'(RSA) to the list of known hosts.

8.最后,可以发现终端命令行前面的参数有变化,说明连接成功!

Last login: Fri Nov 16 15:40:47 2012 from 219.135.147.19

[root@bingo-centos5~]#

【shell】CentOS7.x上sshpass的安装使用

OpenSSH自带的 ssh客户端程序(也就是 ssh命令)默认不允许你以非交互的方式传递密码。

很多时候我们在确定安全的情况下,对ssh的交互登录"深恶痛绝",所以就需要进行免密登录。

ssh登陆不能在命令行中指定密码,sshpass的出现,解决了这一问题。

sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码(本机known_hosts文件中有的主机才能生效)。它允许你用-p参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。

ssh命令,没有指定密码的参数.以至于在脚本中使用ssh命令的时候,必须手动输入密码,才能继续执行.这样使得脚本的自动化执行变得很差,尤其当ssh对应的机器数很多的时候,会令人抓狂.使用非交互式样有两种方式:一种借助expect脚本,一种借助sshpass来实现。

# wget 

# tar  zxf sshpass-1.06.tar.gz

# cd sshpass-1.06

#./configure --prefix=/usr/local/

# make&& make install

# yum-y install sshpass

# yum info sshpass

注:如果用rpm的方式安装ansible,sshpass是作为依赖安装的。

# sshpass-h

# sshpass-p"123456" ssh  -o'StrictHostKeyChecking=no'  root@192.168.1.100

# sshpass-p"123456" ssh -o'StrictHostKeyChecking=no'  root@192.168.1.100  -v

注:第一次登陆务必加上  -o'StrictHostKeyChecking=no' 选项,或者保险起见,每次加上

non-interactive ssh password auth

sshpass用法举例

Linux ssh命令详解

sshpass的使用方法

用expect做服务器的批量互信

nf_conntrack: table full, dropping packet问题的解决思路

介绍:nf_conntrack工作在 3层,支持 IPv4和 IPv6,而 ip_conntrack只支持 IPv4。目前,大多的 ip_conntrack_*已被 nf_conntrack_*取代,很多 ip_conntrack_*仅仅是个 alias,原先的 ip_conntrack的/proc/sys/net/ipv4/netfilter/依然存在,但是新的 nf_conntrack在/proc/sys/net/netfilter/中,这个应该是做个向下的兼容:

复制代码

  

代码如下:

$ pwd

  /proc/sys/net/ipv4/netfilter

  $ ls

  ip_conntrack_buckets ip_conntrack_tcp_loose ip_conntrack_tcp_timeout_syn_recv

  ip_conntrack_checksum ip_conntrack_tcp_max_retrans ip_conntrack_tcp_timeout_syn_sent

  ip_conntrack_count ip_conntrack_tcp_timeout_close ip_conntrack_tcp_timeout_syn_sent2

  ip_conntrack_generic_timeout ip_conntrack_tcp_timeout_close_wait ip_conntrack_tcp_timeout_time_wait

  ip_conntrack_icmp_timeout ip_conntrack_tcp_timeout_established ip_conntrack_udp_timeout

  ip_conntrack_log_invalid ip_conntrack_tcp_timeout_fin_wait ip_conntrack_udp_timeout_stream

  ip_conntrack_max ip_conntrack_tcp_timeout_last_ack

  ip_conntrack_tcp_be_liberal ip_conntrack_tcp_timeout_max_retrans

  $ pwd

  /proc/sys/net/netfilter

  $ ls

  nf_conntrack_acct nf_conntrack_tcp_timeout_close

  nf_conntrack_buckets nf_conntrack_tcp_timeout_close_wait

  nf_conntrack_checksum nf_conntrack_tcp_timeout_established

  nf_conntrack_count nf_conntrack_tcp_timeout_fin_wait

  nf_conntrack_events nf_conntrack_tcp_timeout_last_ack

  nf_conntrack_events_retry_timeout nf_conntrack_tcp_timeout_max_retrans

  nf_conntrack_expect_max nf_conntrack_tcp_timeout_syn_recv

  nf_conntrack_generic_timeout nf_conntrack_tcp_timeout_syn_sent

  nf_conntrack_icmp_timeout nf_conntrack_tcp_timeout_time_wait

  nf_conntrack_log_invalid nf_conntrack_tcp_timeout_unacknowledged

  nf_conntrack_max nf_conntrack_udp_timeout

  nf_conntrack_tcp_be_liberal nf_conntrack_udp_timeout_stream

  nf_conntrack_tcp_loose nf_log/

  conntrack_tcp_max_retrans

查看当前的连接数:

复制代码

  

代码如下:

# grep ip_conntrack/proc/slabinfo

  ip_conntrack 38358 64324 304 13 1: tunables 54 27 8: slabdata 4948 4948 216

查出目前 ip_conntrack的排名:

复制代码

  

代码如下:

$ cat/proc/net/ip_conntrack| cut-d''-f 10| cut-d'='-f 2| sort| uniq-c| sort-nr| head-n 10

nf_conntrack/ip_conntrack跟 nat有关,用来跟踪连接条目,它会使用一个哈希表来记录 established的记录。nf_conntrack在 2.6.15被引入,而 ip_conntrack在 2.6.22被移除,如果该哈希表满了,就会出现:

复制代码

  

代码如下:

nf_conntrack: table full, dropping packet

解决此问题有如下几种思路。

1.不使用 nf_conntrack模块

  首先要移除 state模块,因为使用该模块需要加载 nf_conntrack。确保 iptables规则中没有出现类似 state模块的规则,如果有的话将其移除:

  -A INPUT-m state–state RELATED,ESTABLISHED-j ACCEPT

注释/etc/sysconfig/iptables-config中的:

复制代码

  

代码如下:

IPTABLES_MODULES="ip_conntrack_netbios_ns"

移除 nf_conntrack模块:

复制代码

  

代码如下:

$ sudo modprobe-r xt_NOTRACK nf_conntrack_netbios_ns nf_conntrack_ipv4 xt_state

  $ sudo modprobe-r nf_conntrack

现在/proc/net/下面应该没有 nf_conntrack了。

2.调整/proc/下面的参数

  可以增大 conntrack的条目(sessions, connection tracking entries) CONNTRACK_MAX或者增加存储 conntrack条目哈希表的大小 HASHSIZE

  默认情况下,CONNTRACK_MAX和 HASHSIZE会根据系统内存大小计算出一个比较合理的值:

  对于 CONNTRACK_MAX,其计算公式:

  CONNTRACK_MAX= RAMSIZE(in bytes)/ 16384/(ARCH/ 32)

  比如一个 64位 48G的机器可以同时处理 48*1024^3/16384/2= 1572864条 netfilter连接。对于大于 1G内存的系统,默认的 CONNTRACK_MAX是 65535。

对于 HASHSIZE,默认的有这样的转换关系:

  CONNTRACK_MAX= HASHSIZE* 8

  这表示每个链接列表里面平均有 8个 conntrack条目。其真正的计算公式如下:

  HASHSIZE= CONNTRACK_MAX/ 8= RAMSIZE(in bytes)/ 131072/(ARCH/ 32)

  比如一个 64位 48G的机器可以存储 48*1024^3/131072/2= 196608的buckets(连接列表)。对于大于 1G内存的系统,默认的 HASHSIZE是 8192。

可以通过 echo直接修改目前系统 CONNTRACK_MAX以及 HASHSIZE的值:

复制代码

  

代码如下:

$ sudo su-c"echo 100000/proc/sys/net/netfilter/nf_conntrack_max"

  $ sudo su-c"echo 50000/proc/sys/net/netfilter/nf_conntrack_buckets"

还可以缩短 timeout的值:

复制代码

  

代码如下:

$ sudo su-c"echo 600/proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established"

3.使用 raw表,不跟踪连接

  iptables中的 raw表跟包的跟踪有关,基本就是用来干一件事,通过 NOTRACK给不需要被连接跟踪的包打标记,也就是说,如果一个连接遇到了-j NOTRACK,conntrack就不会跟踪该连接,raw的优先级大于 mangle, nat, filter,包含 PREROUTING和 OUTPUT链。

  当执行-t raw时,系统会自动加载 iptable_raw模块(需要该模块存在)。raw在 2.4以及 2.6早期的内核中不存在,除非打了 patch,目前的系统应该都有支持:

  $ sudo iptables-A FORWARD-m state--state UNTRACKED-j ACCEPT

  $ sudo iptables-t raw-A PREROUTING-p tcp-m multiport--dport 80,81,82-j NOTRACK

  $ sudo iptables-t raw-A OUTPUT-p tcp-m multiport--sport 80,81,82-j NOTRACK

上面三种方式,最有效的是 1跟 3,第二种治标不治本。

参考文档:

  

  

  

阅读剩余
THE END