Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Ansible命令执行错误_Bash_Ansible - Fatal编程技术网

Bash Ansible命令执行错误

Bash Ansible命令执行错误,bash,ansible,Bash,Ansible,我有一个bash脚本,我使用Ansible在节点上执行它 - name : execute the script for uploading www files shell: /root/upload_www.sh 部分脚本正在执行: ssh -t -o StrictHostKeyChecking=no -i $key user@$backupsrv "sudo rsync -ravzhe \"ssh -o StrictHostKeyChecking=no -i $key\" /var/w

我有一个bash脚本,我使用Ansible在节点上执行它

- name : execute the script for uploading www files
  shell: /root/upload_www.sh
部分脚本正在执行:

ssh -t -o StrictHostKeyChecking=no -i $key user@$backupsrv "sudo rsync -ravzhe \"ssh -o StrictHostKeyChecking=no -i $key\" /var/www/html user@$source:/var/www/"
该脚本执行很长时间(大约3个小时,因为有大约80gb数据和其他逻辑的rsync任务),Ansible任务完成时会显示一条错误消息:
“Killed”
,但是脚本 继续执行,该脚本中的所有任务最终都会成功完成

在Ansible主机上运行命令
Ansible playbook www.yml
后,我得到以下输出:

# echo $?
137

如何等待脚本正常结束?

您可以通过添加
async:“{{max\u wait\u time}}”
选项将任务变为一项任务:

- name : execute the script for uploading www files
  shell: /root/upload_www.sh
  async: 10800 # max wait of 3 hours in seconds
  poll: 300 # check for completion every 300 seconds

但是,,我会很小心在这么长的时间内使用异步操作,以及使用不同的方法是否会更好,但在不知道您试图解决的问题的情况下,很难提出更好的方法来解决问题。

原因在于内存不足:ssh-t-o strichostkeychecking=no-I$keyuser@$backupsrv“sudo rsync-ravzhe\”ssh-o strichostkeychecking=no-i$key\”/var/www/html user@$source:/var/www/“>/dev/null 2>&1节点的所有输出都位于ansible主机中,有许多文件,因此linux终止了该进程。非常感谢。