abcfy2
发表于 2013-05-19 10:16
本帖最后由 abcfy2 于 2013-05-19 10:19 编辑
回复 10# wenhq
没有,这次是手工执行的,./mysql_backup.sh &
上次这样执行就重现这个问题了,就是1L最后两行的那个错误,但是这次就没提示。
似乎crontab改成* * * * *也没问题,但是定时就出问题了……
如果正常断开了,在目标服务器的auth.log显示的是session closed by,而不是received disconnect from……
看来scp最好还是不要放到for循环中了,不知道为什么会出现ssh通道关不掉的问题,等整个后台程序退出的时候才把所有的通道都关闭……
wenhq
发表于 2013-05-19 10:29
你可以测试下别的机器也有这样的情况么?
abcfy2
发表于 2013-05-19 12:30
回复 12# wenhq
是两台服务器的mysql数据库互备,另一台服务器的mysql数据库没这么多,没超过10个,所以没遇到这个问题。
猜想很可能是crontab执行的时候后台执行并没有立即关掉ssh端口,导致ssh达到了远程服务器的上限。
wenhq
发表于 2013-05-19 17:01
回复 13# abcfy2
你可以建几个测试的库,测试下!实践才能知道真理。
圣枪骑兵
发表于 2013-05-21 13:47
把sshd_config配置文件中字段 MaxStartups 改大,默认是10
i.am
发表于 2013-05-21 16:05
先导出数据库.然后压缩打包 再scp
to407
发表于 2013-05-22 00:08
因为默认ssh只开10个连接。。。
看看你服务器上的sshd_config 是不是有下面的这行(或者被注释掉,10是默认值),攺成30,重启sshd 看结果是不是不一样了。。。
MaxSessions 10
当然不推荐你这样子攺,特别是生产环境不适宜攺maxsession,最大问题是要攺脚本,攺成串行。。。
w28501589
发表于 2013-05-25 20:51
crontab 中如果出问题的话。多半可能是环境变量造成的!你可以查一下
lolizeppelin
发表于 2013-06-04 16:54
我估计一个scp还没有完成已经循环下一次了?
好像也不对啊,难道你数据库很小导出很快?
jxing_ing
发表于 2013-06-07 12:25
你scp是怎么认证的? 密码? 密钥? 密钥转发?
看日志 crontab 跑的时候多了一行: Accepted password for ok988 from 擦掉IP port 48714 ssh2
你应该是用密钥或者密钥转发登陆的吧, 然后crontab 跑的时候没有密钥就用密码认证了