免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2314 | 回复: 3
打印 上一主题 下一主题

crontab不能执行perl脚本当中的个别命令 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-10 11:57 |只看该作者 |倒序浏览
请教大家一个问题,为什么下面的perl脚本用./backup.pl运行正常,但是放到crontab底下就会报错呢?这个脚本是用来备份svn的。
perl脚本:


  1. #!/usr/bin/perl -w
  2. $svn_repos="/opt/svn-repos-test";
  3. $backups_dir="/home/youyan/svn-backup";
  4. $next_backup_file = "daily_incremental_backup.".`date +%Y%m%d_%H:%M`;
  5. open(IN,"$backups_dir/last_backed_up");
  6. $previous_youngest = <IN>;
  7. #chomp $previous_youngest;
  8. close IN;
  9. $youngest=`svnlook youngest $svn_repos`;
  10. chomp $youngest;
  11. if ($youngest eq $previous_youngest)
  12. {
  13.    print "No new revisions to back up...\n";
  14.    exit 0;
  15. }
  16. $first_rev = $previous_youngest + 1;
  17. $last_rev=$youngest;
  18. print "Backing up revisions $first_rev to $last_rev...\n";
  19. $svnadmin_cmd = "svnadmin dump --incremental ".
  20.                 "--revision $first_rev:$last_rev ".
  21.                 "$svn_repos>$backups_dir/$next_backup_file";
  22. `$svnadmin_cmd`;
  23. print "Compressing dump file...\n";
  24. print `gzip -9 $backups_dir/$next_backup_file`;
  25. open(LOG,">$backups_dir/last_backed_up"); #记录备份的版本号
  26. print LOG $last_rev;
  27. close LOG;
复制代码


报的错误:

Date: Fri, 10 Jul 2009 11:43:01 +0800
Message-Id: <200907100343.n6A3h155005897@localhost.localdomain>
From: root@localhost.localdomain (Cron Daemon)
To: root@localhost.localdomain
Subject: Cron <root@localhost> /home/youyan/svn-backup/daily-backup.pl
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env: <SHELL=/bin/bash>
X-Cron-Env: <ATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin>
X-Cron-Env: <MAILTO=root>
X-Cron-Env: <HOME=/>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>

Use of uninitialized value in scalar chomp at /home/youyan/svn-backup/daily-backup.pl line 7.
Can't exec "svnlook": No such file or directory at /home/youyan/svn-backup/daily-backup.pl line 9.
Use of uninitialized value in scalar chomp at /home/youyan/svn-backup/daily-backup.pl line 10.
Use of uninitialized value in string eq at /home/youyan/svn-backup/daily-backup.pl line 11.
Use of uninitialized value in string eq at /home/youyan/svn-backup/daily-backup.pl line 11.
No new revisions to back up...

论坛徽章:
0
2 [报告]
发表于 2009-07-10 12:03 |只看该作者
请教哪位高手帮我瞅瞅,为什么crontab不能执行perl脚本,放到shell脚本中,再通过crontab执行也不行……

我有没有放错版块呀?

论坛徽章:
0
3 [报告]
发表于 2009-07-10 13:56 |只看该作者

用/usr/bin/svnlook

/usr/bin/svnlook

论坛徽章:
0
4 [报告]
发表于 2009-07-10 14:12 |只看该作者

回复 #3 kenshin792 的帖子

您说的具体怎么个用法呢?不好意思,我是新手。是不在crontab中添加这个?还是perl脚本中添加?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP