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 跑的时候没有密钥就用密码认证了
页: 1 [2] 3
查看完整版本: cron执行scp脚本只能scp 9个文件,这是怎么回事?