相关疑难解决方法(0)

为什么我的Cron工作不能正常工作?

我在Ubuntu Hardy VPS上有一个cron工作,只有一半工作,我无法解决原因.这个工作是一个Ruby脚本,它使用mysqldump来备份Rails应用程序使用的MySQL数据库,然后使用SFTP对其进行gzip压缩并上传到远程服务器.

gzip文件已成功创建和复制,但始终为零字节.然而,如果我直接从命令行运行cron命令,它可以完美地工作.

这是cron的工作:

PATH=/usr/bin
10 3 * * * ruby /home/deploy/bin/datadump.rb
Run Code Online (Sandbox Code Playgroud)

这是datadump.rb:

#!/usr/bin/ruby
require 'yaml'
require 'logger'
require 'rubygems'
require 'net/ssh'
require 'net/sftp'

APP        = '/home/deploy/apps/myapp/current'
LOGFILE    = '/home/deploy/log/data.log'
TIMESTAMP  = '%Y%m%d-%H%M'
TABLES     = 'table1 table2'

log        = Logger.new(LOGFILE, 5, 10 * 1024)
dump       = "myapp-#{Time.now.strftime(TIMESTAMP)}.sql.gz"
ftpconfig  = YAML::load(open('/home/deploy/apps/myapp/shared/config/sftp.yml'))
config     = YAML::load(open(APP + '/config/database.yml'))['production']
cmd        = "mysqldump -u #{config['username']} -p#{config['password']} -h #{config['host']} --add-drop-table --add-locks --extended-insert --lock-tables #{config['database']} #{TABLES} | gzip -cf9 > #{dump}"

log.info 'Getting ready to create …
Run Code Online (Sandbox Code Playgroud)

ruby linux ubuntu cron ruby-on-rails

7
推荐指数
2
解决办法
7592
查看次数

标签 统计

cron ×1

linux ×1

ruby ×1

ruby-on-rails ×1

ubuntu ×1