我想设置一个脚本并使用cronjob来备份所有存储库。
... FYI
RVM版本:1.20.13,Ruby版本:1.9.3p429,宝石版本:1.8.25,Bundler版本:1.3.5,Rake版本:10.0.4,GitLab信息版本:5.3.0
我尝试了下面的方法,但它们没有用。请帮我设置所需的cronjob。当我手动执行命令时,它们工作正常。
#!/bin/bash
cd /home/git/gitlab/
bundle exec rake gitlab:backup:create RAILS_ENV=production
错误:
bundle:找不到命令
#!/bin/sh
cd /home/git/gitlab/
bundle exec rake gitlab:backup:create RAILS_ENV=production
错误:
/ bin / sh:bundle:找不到命令
10 10 * * * cd /home/git/gitlab && PATH=$PATH:$/home/git/.rvm/gems/ruby-1.9.3-p429/bin:/home/git/.rvm/gems/ruby-1.9.3-p429@global/bin:/home/git/.rvm/rubies/ruby-1.9.3-p429/bin:/home/git/.rvm/bin::/home/git/.rvm/rubies/ruby-1.9.3-p429/.irbrc bundle exec rake gitlab:backup:create RAILS_ENV=production CRON=1 >> /tmp/git_bck.log 2>&1
错误:
/home/git/.rvm/gems/ruby-1.9.3-p429@global/bin/ruby_noexec_wrapper:7:在`require':没有这样的文件加载 - 来自/ home / git的rubygems(LoadError) /.rvm/gems/ruby-1.9.3-p429@global/bin/ruby_noexec_wrapper:7
答案 0 :(得分:1)
你需要做两件事:
1)重新创建命令行中的相同环境。对于在命令行中运行env,然后在cron中运行env并输出到shell,比较其中的2个
2)源rvm(查看你的.bashrc或你的shell有的rc。)
这两件事应该允许你从cron运行脚本。您可以将它们放在脚本的边缘。
答案 1 :(得分:0)
问题解决了:
在.bashrc中,添加了
PATH = $ PATH:$ HOME / .rvm / bin#将RVM添加到PATH以进行脚本编写
导出GIT_HOME = / home / git / git
导出JAVA_HOME = / home / git / jdk
export PATH = $ PATH:$ GIT_HOME / bin:$ JAVA_HOME / bin
source /home/git/.rvm/environments/default
在.bash_profile中,添加了
PATH = $ PATH:$ HOME / bin中
导出路径
[[-s" $ HOME / .rvm / scripts / rvm" ]]&&来源" $ HOME / .rvm / scripts / rvm"
FYI ..
cat /home/git/.rvm/environments/default
出口路径; PATH =" /home/git/.rvm/gems/ruby-1.9.3-p429/bin:/home/git/.rvm/gems/ruby-1.9.3-p429@global/bin:/家/git/.rvm/rubies/ruby-1.9.3-p429/bin:/home/git/.rvm/bin:$PATH"
export rvm_env_string; rvm_env_string ='红宝石1.9.3-429页'
export rvm_path; rvm_path =' /home/git/.rvm'
export rvm_ruby_string; rvm_ruby_string ='红宝石1.9.3-429页'
取消设置rvm_gemset_name
导出RUBY_VERSION; RUBY_VERSION ='红宝石1.9.3-429页'
导出GEM_HOME; GEM_HOME =' /home/git/.rvm/gems/ruby-1.9.3-p429'
导出GEM_PATH; GEM_PATH =' /home/git/.rvm/gems/ruby-1.9.3-p429:/home/git/.rvm/gems/ruby-1.9.3-p429@global'
导出MY_RUBY_HOME; MY_RUBY_HOME =' /home/git/.rvm/rubies/ruby-1.9.3-p429'
出口IRBRC; IRBRC =' /home/git/.rvm/rubies/ruby-1.9.3-p429/.irbrc'
取消设置MAGLEV_HOME
取消设置RBXOPT
在crontab脚本中:
cd / home / git / gitlab /
来源$ HOME / .bash_profile
来源$ HOME / .bashrc
捆绑exec rake gitlab:backup:创建RAILS_ENV =生产