V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
AnjingJingan
V2EX  ›  程序员

centos 定时任务执行脚本,输出到文件的内容会自动省略

  •  
  •   AnjingJingan · 2022-06-16 20:05:50 +08:00 · 1218 次点击
    这是一个创建于 916 天前的主题,其中的信息可能已经有所发展或是发生改变。

    手动执行脚本,在脚本里面输出变量到文件正常

    但是换成 crontab 调度执行,脚本输出到文件的内容会自动省略一些

    代码

    IN=`echo "$LINE" | tr -s ' '`
    PID=`echo $IN | cut -d ' ' -f1 `
    CMD="`echo $IN | cut -d ' ' -f12 ` ` echo $IN | cut -d ' ' -f13` ` echo $IN | cut -d ' ' -f14`"
    CPU=`echo $IN | cut -d ' ' -f9 `
    MEM=`echo $IN | cut -d ' ' -f10 `
    
    echo "${PID}|${CMD}|${CPU}|${MEM}" >> /tmp/push-top-tmp.log
    

    手动执行文件结果:

    ./push-top.sh
    

    XH6LlR.png


    crontab 调度执行的结果:

    * * * * * /push-top.sh
    

    XH6zTO.png


    在脚本里面加过 source /etc/profile ,无效

    在定时任务前加过 source /etc/profile && /push-top.sh ,无效


    一模一样的脚本,都是用 root 账户执行,为什么 crontab 执行后面的参数都掉了?

    7 条回复    2022-06-16 21:31:26 +08:00
    FrankAdler
        1
    FrankAdler  
       2022-06-16 20:59:27 +08:00 via iPhone
    执行频率调高点试试
    littlefan
        2
    littlefan  
       2022-06-16 21:00:13 +08:00   ❤️ 1
    脚本前增加一条 COLUMNS=9999 即可,指定控制台宽度
    AnjingJingan
        3
    AnjingJingan  
    OP
       2022-06-16 21:12:41 +08:00
    @FrankAdler 执行频率已经是最高了,每分钟执行一次
    AnjingJingan
        4
    AnjingJingan  
    OP
       2022-06-16 21:21:44 +08:00
    @littlefan 好像不行啊,一样的,不只是定时任务
    除了手动执行,其他方式自动执行输出到日志都不全
    littlefan
        5
    littlefan  
       2022-06-16 21:23:21 +08:00
    @AnjingJingan crontab 配置成这样:
    * * * * * COLUMNS=9999 push-top.sh
    AnjingJingan
        7
    AnjingJingan  
    OP
       2022-06-16 21:31:26 +08:00
    @littlefan 可行,问题解决了,感谢老哥
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3709 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:51 · PVG 08:51 · LAX 16:51 · JFK 19:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.