solaris unix 命令如下mysqldump --quick -hisdbsvr -ucms2 -pcms2 cms | gzip >  /tmp/cmsdumptest.gz直接在命令行跑,得到6M的gzip过的dump file,但是用crontab跑同样是这个命令,却得到一个20 byte的gz file,解压以后看到的是一个空文件.为什么会这样啊

解决方案 »

  1.   

    crontab 里面要用到绝对路径.
      

  2.   

    crontab 里面用了绝对路径
    36 23 * * * /export/home/vas/bin/cms/dbdumptest.sh而且这个dbdumptest.sh的权限已经全部打开
    -rwxrwxrwx   1 vas      vas           78 Sep 29 20:35 dbdumptest.sh但是执行的结果还是
    -rw-r--r--   1 vas      vas           20 Sep 29 23:36 cmsdumptest.gz但是要是手动去run /export/home/vas/bin/cms/dbdumptest.sh
    得到
    -rw-r--r--   1 vas      vas         980K Sep 29 23:39 cmsdumptest.gz实在是让我疑惑不解啊
      

  3.   

    dbdumptest.sh 这个脚本的内容是什么?
      

  4.   

    dbdumptest.sh 脚本内容如下mysqldump --quick -hlocalhost -ucms2 -pcms2 cms | gzip >  /tmp/cmsdumptest.gz
      

  5.   

    crontab是非交互的shell环境,和直接在shell执行时有区别的
    建议不用gzip在两个环境下先比较一下
      

  6.   

    检查系统所有的环境变量,把有用的都在
    crontab 
    里面设置一下
      

  7.   

    特别是像path之类的
    要保证在shell下能访问gzip
      

  8.   

    加这一句到你的个人启动文件中。
    export PATH=$PATH:你的MYSQL的bin目录
      

  9.   

    个儿启动文件是在哪里啊我的用户名称是VAS
    是在/export/home/vas/下面吗
      

  10.   

    好久没有用过LINUX了,应该是
    cd ~
    vi .bashrc