Перенаправьте stderr также.
psql mydb mydbuser -c "VACUUM ANALYZE VERBOSE" &> vacuum.log
Убедитесь, что вы используете Ruby 1.9, затем установите Knife-essentials
$ gem install knife-essentials
Затем добавьте следующее в ~ / .chef / Knife.rb
repo_mode 'everything'
versioned_cookbooks true
chef_repo_path 'PATH/TO/chef-repo'
Затем вы можете загрузить / загрузить весь свой сервер или только его части. При загрузке в репозиторий chef-repo будет помещено много файлов .json, которые можно найти в резервных копиях.
$ knife download /
$ knife upload /
$ knife upload /clients
Также обратите внимание, что если у вас есть роли, хранящиеся в виде файлов ruby (например: roles / *. Rb
) , вам нужно будет преобразовать их в json. Затем вы можете повторно загрузить их с сервера Chef как json. Например:
роль ножа из файлов ролей / *. Rb
ролей загрузки ножа /
Этот метод также используется для обновления с сервера 10 до 11 .
Вы можете написать простой сценарий bash, чтобы сделать это, например:
#!/bin/sh
for file in `ls cookbooks`;do
[ -d $file ] && knife cookbook upload cookbooks/$file
done
for file in `ls data_bags | grep \.json$`;do
knife data bag from file data_bags/$file
done
for file in `ls environments | grep \.rb$`;do
knife environment from file environments/$file
done
for file in `ls roles | grep \.json$`;do
knife role from file roles/$file
done
, а затем вызвать его с помощью ./script.sh , это сделает все автоматически.
Я написал небольшой плагин для ножей под названием sync-all, описанный ниже, который также выполняет это:
https://github.com/cdoughty77/knife-sync-all