一个cron导致的脚本问题

1210阅读 0评论2013-06-04 lolizeppelin
分类:LINUX

这贴看到的

点击(此处)折叠或打开

  1. 写了个备份mysql并scp远程备份的脚本,大致过程如下
  2. #!/bin/bash
  3. list="database1 database2 database3 ... database n"
  4. for database in $list
  5. do
  6.     mysql -u root -ppasswd $database > $database.sql
  7.     scp $database.sql 192.168.1.2:
  8. done
  9. 单独执行没有任何问题,放在crontab执行发现只有9个文件scp过去了,最后几个全都收到了ssh认证失败的错误,这个是怎么回事?
  10. ssh_exchange_identification: Connection closed by remote host^M
  11. lost connection

点击(此处)折叠或打开

  1. 回复 10# wenhq
  2. 没有,这次是手工执行的,./mysql_backup.sh &
  3. 上次这样执行就重现这个问题了,就是1L最后两行的那个错误,但是这次就没提示。
  4. 似乎crontab改成* * * * *也没问题,但是定时就出问题了……
  5. 如果正常断开了,在目标服务器的auth.log显示的是session closed by,而不是received disconnect from……
  6. 看来scp最好还是不要放到for循环中了,不知道为什么会出现ssh通道关不掉的问题,等整个后台程序退出的时候才把所有的通道都关闭……

看来脚本放在cron中会有可能出现特殊情况

难到crontab中的scp进程在crontab退出以后才退出,,写shell脚本的注意鸟。还好我习惯只scp一次


上一篇:原来硬件错误的话linux会自动关机的...
下一篇:pyHook使用与python描述符property