2017-06-13 106 views
0

試圖設置我們的廚師服務器的自動備份,但它在焦油階段超時。我手動運行了tar,它似乎花了20分鐘,但默認的超時時間是10分鐘。我嘗試過使用--timeout並將其設置爲高達6000的值,但在600秒後仍然超時。廚師服務器ctl備份不尊重 - 超時

輸出:

[email protected]:/opt/opscode/embedded/lib/ruby/gems/2.1.0/gems/chef_backup-0.0.1# /usr/bin/chef-server-ctl backup --yes --timeout 60000                                 
Locating rsync.. 
/usr/bin/rsync 
Starting Chef Server backup 
Bringing down the Chef Server 
ok: down: bookshelf: 1s, normally up 
ok: down: nginx: 1s, normally up 
ok: down: oc_bifrost: 0s, normally up 
ok: down: oc_id: 0s, normally up 
ok: down: opscode-chef-mover: 1s, normally up 
ok: down: opscode-erchef: 0s, normally up 
ok: down: opscode-expander: 0s, normally up 
ok: down: opscode-solr4: 0s, normally up 
ok: down: rabbitmq: 0s, normally up 
ok: down: redis_lb: 0s, normally up 
Dumping Postgresql database to /tmp/chef_backup20170613-7603-1hsvyr5/chef_backup-2017-06-13-16-55-10.sql 
could not change directory to "/tmp/d20170613-7603-xpkmet" 
ok: down: postgresql: 0s, normally up 
Writing backup manifest 
Creating backup tarball 
/opt/opscode/embedded/lib/ruby/gems/2.1.0/gems/mixlib-shellout-2.2.6/lib/mixlib/shellout/unix.rb:183: warning: conflicting chdir during another chdir block 
tar: Removing leading `/' from member names 
ERROR: Something wen't terribly wrong, aborting backup 
ERROR: Command timed out after 600s: 
Command exceeded allowed execution time, process terminated 
---- Begin output of tar -czf /tmp/chef_backup20170613-7603-1hsvyr5/chef-backup-2017-06-13-16-55-10.tgz /var/opt/opscode/rabbitmq/db /var/opt/opscode/opscode-solr4/data /var/opt/opscode/redis_lb/data /var/opt/opscode/postgresql/9.2/data /var/opt/opscode/bookshelf/data /v 
ar/opt/opscode/upgrades /etc/opscode /etc/opscode-manage /etc/opscode-reporting /etc/opscode-push-jobs-server /etc/opscode-analytics manifest.json chef_backup-2017-06-13-16-55-10.sql ---- 
STDOUT: 
STDERR: /opt/opscode/embedded/lib/ruby/gems/2.1.0/gems/mixlib-shellout-2.2.6/lib/mixlib/shellout/unix.rb:183: warning: conflicting chdir during another chdir block 
tar: Removing leading `/' from member names 
---- End output of tar -czf /tmp/chef_backup20170613-7603-1hsvyr5/chef-backup-2017-06-13-16-55-10.tgz /var/opt/opscode/rabbitmq/db /var/opt/opscode/opscode-solr4/data /var/opt/opscode/redis_lb/data /var/opt/opscode/postgresql/9.2/data /var/opt/opscode/bookshelf/data /var 
/opt/opscode/upgrades /etc/opscode /etc/opscode-manage /etc/opscode-reporting /etc/opscode-push-jobs-server /etc/opscode-analytics manifest.json chef_backup-2017-06-13-16-55-10.sql ---- 
Ran tar -czf /tmp/chef_backup20170613-7603-1hsvyr5/chef-backup-2017-06-13-16-55-10.tgz /var/opt/opscode/rabbitmq/db /var/opt/opscode/opscode-solr4/data /var/opt/opscode/redis_lb/data /var/opt/opscode/postgresql/9.2/data /var/opt/opscode/bookshelf/data /var/opt/opscode/up 
grades /etc/opscode /etc/opscode-manage /etc/opscode-reporting /etc/opscode-push-jobs-server /etc/opscode-analytics manifest.json chef_backup-2017-06-13-16-55-10.sql returned 

有什麼想法?

編輯:

這裏要說的是,我相信創造焦油代碼:

def create_tarball 
    log 'Creating backup tarball' 
    cmd = [ 
     "tar -czf #{tmp_dir}/#{export_filename}", 
     data_map.services.map { |_, v| v['data_dir'] }.compact.join(' '), 
     data_map.configs.map { |_, v| v['data_dir'] }.compact.join(' '), 
     Dir["#{tmp_dir}/*"].map { |f| File.basename(f) }.join(' ') 
    ].join(' ').strip 

    res = shell_out(cmd, cwd: tmp_dir) 
    res 
    end 

從/opt/opscode/embedded/lib/ruby/gems/2.1.0/gems/ chef_backup /0.0.1/lib/Chef_backup/warm/backup/tar.rb文件

+0

你可以包含執行'tar'動作的相關執行語句/代碼嗎? – JohnLBevan

+0

我不得不通過廚師代碼來找到它。忍耐與我,我會看看我是否可以找到它.. 已更新的原貼 – user3062065

回答