ruby에서 zip 파일로 쉘 명령을 사용하고 있습니다. 그런 다음 압축 된 파일을 서버에 업로드합니다. 내가 좋아하는 루프를 사용할 때 는 :Ruby - 쉘 명령 실행이 완료 될 때까지 루비 프로그램을 지연하십시오.
dump_files.each do |dump_file|
Open3.popen3("zip #{zip_file} #{dump_file}")
end
그리고 업로드는 dump_files 배열의 마지막 파일은 업로드 ZipFile에 존재하지만, 로컬 파일이 존재하지 않습니다.
파일을 압축하는 데 시간 지연이 발생한다고 생각합니다. zip 명령 실행이 완료 될 때까지 어떻게 루비 실행을 지연시킬 수 있습니까?
문제는 다른 것이어야합니다. 지연시키지 않아도됩니다. 쉘 명령을 백틱으로 실행할 때 셸 명령은 * 완료 될 때까지 Ruby로 돌아 가지 않습니다. 'sleep 10'을 시도하면 알게 될 것입니다. – Casper
또한 명령 "zip .."'주위에 큰 따옴표를 사용하는 것으로 의심됩니다. 'zip ... '을 실행해야합니다. – Casper
죄송합니다. 이전에 쉘 명령을 실행하기 위해 Open3.popen3()을 사용하고있었습니다. 이제는 popen3() 대신에''를 사용할 때 작동합니다. 대단히 감사합니다 – Sayuj