免费注册 查看新帖 |

Chinaunix

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

程序在crontab中执行为何与单独执行不一样啊? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-13 12:13 |只看该作者 |倒序浏览
10可用积分
我写了一个test的程序,如果单独运行,在日志文件中打印如下所示:
2007-03-13 12:31:09
connect the db success!!!
read configure file success!!!
have no records in PROT_ONLINE

但是在crontab中运行,日志文件中只有只有第一行的时间,时间下面的三行都没有!
我的crontab语句为:*/2 * * * * /home/test

最佳答案

查看完整内容

哪邊來的日誌 ? 你自己開啟的 log 寫入內容嗎 ? 或者是 ....?討論版常見許多人跑 oracle 的一些小程序運作某功能,而程序運作常常需要仰賴特定環境變量的資料來運作,只是 crontab 執行時並沒有那些環境變量可以讓你的程序使用。也許你應該把你的程序程式碼內容交代一下,這樣好判斷問題。--

论坛徽章:
0
2 [报告]
发表于 2007-03-13 12:13 |只看该作者
原帖由 bxb_koala 于 2007-3-13 12:13 发表于 1楼  
我写了一个test的程序,如果单独运行,在日志文件中打印如下所示:
2007-03-13 12:31:09
connect the db success!!!
read configure file success!!!
have no records in PROT_ONLINE


哪邊來的日誌 ? 你自己開啟的 log 寫入內容嗎 ? 或者是 ....?

但是在crontab中運行,日誌文件中只有只有第一行的時間,時間下面的三行都沒有!
我的crontab語句為:*/2 * * * * /home/test


討論版常見許多人跑 oracle 的一些小程序運作某功能,而程序運作常常需要仰賴特定環境變量的資料來運作,只是 crontab 執行時並沒有那些環境變量可以讓你的程序使用。

也許你應該把你的程序程式碼內容交代一下,這樣好判斷問題。

--

论坛徽章:
0
3 [报告]
发表于 2007-03-13 12:42 |只看该作者
注意以下两方面
1、路径,改用绝对路径
2、环境变量

论坛徽章:
0
4 [报告]
发表于 2007-03-13 13:25 |只看该作者
我在crontab可以运行,只是执行结果不一样啊

论坛徽章:
0
5 [报告]
发表于 2007-03-13 14:39 |只看该作者
日志写入是我自己在程序中实现的
int main()
{
    char filename[256] = "/opt/auth_sys/config/act_time.conf";
    char conf_time[10];
    time_t timep;
    struct tm *p;
    char str_time[20];
    
    
    memset(str_time,'\0',20);
    time(&timep);
    p=localtime(&timep);
    
    sprintf(str_time,"%d-%02d-%02d %02d:%02d:%02d",(1900+p->tm_year), (1+p->tm_mon), p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec);
    WriteLog("\n");
    WriteLog(str_time);            [color=#FF9900>//用来打印crontab运行的时间

    
    ctSetup();
    
    [color=#FF9900>// 连接数据库

    CConnManager manager(CConnManager::SYB);

    g_connection = manager.CreateConnection("linkage", "link@ge!!!", "esecurer");
    if(!g_connection)
    {
        WriteLog("connect the server failed!!!");
        return -1;
    }

    [color=#FF9900>//cout << "connect the db success!!!\n";

    
    WriteLog("connect the db success!!!");
    
    memset(conf_time, '\0', 10);
    
    linkage_readConfig(filename, conf_time);
    linkage_query(conf_time);
    
    return 0;
    
}

论坛徽章:
0
6 [报告]
发表于 2007-03-13 15:00 |只看该作者
原帖由 bxb_koala 于 2007-3-13 14:39 发表于 5楼  
日志写入是我自己在程序中实现的
int main()
{
    char filename256] = "/opt/auth_sys/config/act_time.conf";
    char conf_time10];
   ...


你的程式碼有使用其他非標準函數呼叫,所以你提供的東西不明確。

我建議你可以的話提供你到底是安裝那種 db ? 還有先瞭解一下你的 db 數據庫軟件運作時需要需要配置環境變量等,這樣才好釐清問題點。

--

论坛徽章:
0
7 [报告]
发表于 2007-03-13 15:27 |只看该作者
我安装的是sybase-11.9.2数据库,操作系统为AS4,以下是我系统上的全部环境变量:
HOSTNAME=localhost.localdomain
TERM=vt100
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=::ffff:192.168.222.31 1860 22
SSH_TTY=/dev/pts/3
USER=root
LD_LIBRARY_PATH=/opt/sybase/SYBSsa9/lib:/opt/sybase/SYBSsa9/jre141/lib/i386/client:/opt/sybase/SYBSsa9/jre141/lib/i386:/opt/sybase/SYBSsa9/jre141/lib/i386/native_threads:/opt/sybase/SYBSsa9/drivers/lib:
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01r=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
SYBASE=/opt/sybase-11.9.2
ACE_ROOT=/opt/ACE
CLASS_HOME=/usr/java/j2sdk1.4.2_01
MAIL=/var/spool/mail/root
PATH=/opt/sybase-11.9.2/bin:/opt/sybase/SYBSsa9/bin:/opt/sybase/shared/sybcentral42:/usr/java/j2sdk1.4.2_01/bin:/usr/java/j2sdk1.4.2_01/jre/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/kerberos/sbin:/usr/kerberos/bin:/root:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/root/bin
ASANYSH9=/opt/sybase/shared
INPUTRC=/etc/inputrc
PWD=/opt/sybase-11.9.2
JAVA_HOME=/usr/java/j2sdk1.4.2_01
ASANY9=/opt/sybase/SYBSsa9
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SHLVL=1
HOME=/root
LOGNAME=root
CLASSPATH=/usr/java/j2sdk1.4.2_01/lib:/usr/java/j2sdk1.4.2_01/jre/lib:/usr/java/j2sdk1.4.2_01:/lib/tools.jar:/usr/java/j2sdk1.4.2_01/lib/dt.jar:/RESIN_HOME/lib
SSH_CONNECTION=::ffff:192.168.222.31 1860 ::ffff:10.1.1.145 22
RESIN_HOME=/usr/local/resin
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=/bin/env
OLDPWD=/opt

论坛徽章:
0
8 [报告]
发表于 2007-03-13 16:27 |只看该作者
问题解决了,多谢前辈提示!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP