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,第二种治标不治本。
参考文档: