crontab 不执行问题,网上找了一个小时都没找到解决方法,醉了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Hopetree
V2EX    Linux

crontab 不执行问题,网上找了一个小时都没找到解决方法,醉了

  •  
  •   Hopetree
    Hopetree 2018-04-21 17:14:27 +08:00 11675 次点击
    这是一个创建于 2760 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先说我的系统,是 Ubuntu 16.04

    然后我要运行一个定时任务,所以为了测量定时任务是否执行,先运行一个最基本的测试,但是发现根本没运行。

    我的做法:

    • 使用 crontab -e 进行编辑模式,然后写入代码如下:
    1 * * * * echo 111 >> /home/alex/Desktop/mycodes/k.txt 
    • 查看定时任务 crontab -l 可以看到跟我编辑的一模一样的结果
    • 然后我重启 cron 服务,使用如下命令:
    service cron restart 

    但是我发现这个定时任务并没有启动啊

    而且我还发现,网上都是说 crond,但是我把 cron 改成 crond 就报错,根本没有这个服务,请问我哪里没有作对?

    贴一下 /var/log/cron.log 的日志:

    Apr 21 17:04:01 VirtualBox crontab[6460]: (alex) BEGIN EDIT (alex) Apr 21 17:05:18 VirtualBox crontab[6460]: (alex) END EDIT (alex) Apr 21 17:05:23 VirtualBox crontab[6473]: (alex) LIST (alex) Apr 21 17:07:04 VirtualBox cron[6489]: (CRON) INFO (pidfile fd = 3) Apr 21 17:07:04 VirtualBox cron[6489]: (CRON) INFO (Skipping @reboot jobs -- not system startup) Apr 21 17:08:41 VirtualBox cron[6510]: (CRON) INFO (pidfile fd = 3) Apr 21 17:08:41 VirtualBox cron[6510]: (CRON) INFO (Skipping @reboot jobs -- not system startup) Apr 21 17:10:07 VirtualBox crontab[6526]: (alex) LIST (alex) Apr 21 17:10:44 VirtualBox crontab[6534]: (alex) BEGIN EDIT (alex) Apr 21 17:11:01 VirtualBox crontab[6534]: (alex) END EDIT (alex) 
    42 条回复    2018-04-23 15:45:23 +08:00
    tradzero
        1
    tradzero  
       2018-04-21 17:19:42 +08:00
    ubuntu 16.04 确实是 cron 我也被坑了
    Hopetree
        2
    Hopetree  
    OP
       2018-04-21 17:24:26 +08:00
    @tradzero 然而我看网上大部分都是在说 crond,而且我查 cron 和 crond 的关系居然还没查到,这些都不是关键,关键是,我这样设置定时任务为什么不执行?
    aheadlead
        3
    aheadlead  
       2018-04-21 17:24:31 +08:00
    “ 1 * * * *” 的 1 是啥意思?
    20has
        4
    20has  
       2018-04-21 17:24:43 +08:00 via Android
    我说下你的问题,
    1 日志不排版看的累
    2 定时任务最好放脚本
    3 造成原因或许是无权限写入或者该文件( k.txt )未先创建!
    wdd2007
        5
    wdd2007  
       2018-04-21 17:26:00 +08:00   1
    你 * * * * * 测试一下。

    你用 1 * * * * 不得一个小时才能有结果。
    20has
        6
    20has  
       2018-04-21 17:26:29 +08:00 via Android
    @aheadlead 每小时的第 1 分钟执行
    应该是*/1 把 每分钟执行一次
    zw
        7
    zw  
       2018-04-21 17:41:15 +08:00
    Ubuntu 不是基于 Debian 的么?我看到在 Debian 里,都是把脚本放到 /etc/cron.hourly/目录下即可。。。
    abmin521
        8
    abmin521  
       2018-04-21 17:51:36 +08:00 via Android   1
    echo 写绝对路径
    defunct9
        9
    defunct9  
       2018-04-21 17:54:54 +08:00 via iPhone   1
    开 ssh,我也不上去看
    DANG
        10
    DANG  
       2018-04-21 18:05:57 +08:00
    每个分钟数为 1 的时候执行
    blankme
        11
    blankme  
       2018-04-21 18:08:17 +08:00 via Android
    5 楼正解
    flytiger3768
        12
    flytiger3768  
       2018-04-21 18:09:51 +08:00
    crontab -e 不需要重启 crond。你这个设置的是每个小时的第 1 分钟开始执行,如 0 点 1 分、1 点 1 分、2 点 1 分。参考 @20has 的回答修改设置
    Cbdy
    &nbp;   13
    Cbdy  
       2018-04-21 18:21:10 +08:00 via Android
    systemd timer 了解一下
    ThirdFlame
        14
    ThirdFlame  
       2018-04-21 18:34:45 +08:00
    每小时第 1 分钟。 找了一个小时 ,回来一看 刚刚好执行啊
    yingfengi
        15
    yingfengi  
       2018-04-21 19:20:32 +08:00 via Android
    目测服务并没有自启动,我遇到过这种坑。帮瓦工的乌班图就这样。
    yingfengi
        16
    yingfengi  
       2018-04-21 19:22:06 +08:00 via Android   1
    Hopetree
        17
    Hopetree  
    OP
       2018-04-21 19:34:59 +08:00
    @aheadlead 哈哈哈,我蠢了,我以为 1 就是表示每 1 分钟执行一次
    @wdd2007 原来问题都处在我设置的时间上面,这个是 1 小时,我一直以为是 1 分钟
    @20has 是我把时间搞错了,刚接触这个定时任务,一直理解错了时间
    @ThirdFlame 真的如你所说,一个小时之后我的任务执行了,好啊
    artandlol
        18
    artandlol  
       2018-04-21 19:42:02 +08:00 via iPhone
    不要-e 直接改配置文件
    zhicheng
        19
    zhicheng  
       2018-04-21 19:45:12 +08:00 via iPhone
    环境变量
    torbrowserbridge
        20
    torbrowserbridge  
       2018-04-21 19:47:19 +08:00 via Android
    改完并不需要 restart crond
    chanssl
        21
    chanssl  
       2018-04-21 20:21:02 +08:00   2
    推荐这个工具
    https://tool.lu/crontab/
    TheKiller
        22
    TheKiller  
       2018-04-21 20:22:28 +08:00 via iPhone
    不执行九成是环境变量的问题
    Nick2VIPUser
        23
    Nick2VIPUser  
       2018-04-21 20:22:56 +08:00 via iPhone
    同样的程序换一台机器试一下
    GlobalNPC
        24
    GlobalNPC  
       2018-04-21 20:22:56 +08:00 via iPhone
    @yingfengi 我也是,然后查了一会没找到问题,一气换装了 centOS
    Hopetree
        25
    Hopetree  
    OP
       2018-04-21 20:38:07 +08:00
    @chanssl 厉害了,工具很实用,我刚才写了一个以为是每天 3 点执行,然后用这个工具才发现是 3 点的每 1 分钟执行一次,然后改了过来,挺好的,可以帮助理解
    Hopetree
        26
    Hopetree  
    OP
       2018-04-21 20:38:38 +08:00
    @torbrowserbridge 好的,感谢,刚开始用这个功能不熟悉,感谢各位支招
    Hopetree
        27
    Hopetree  
    OP
       2018-04-21 20:41:16 +08:00
    我还发现了一个问题,就是运行用 sh 来运行 Python 代码然后设置成定时任务的时候,sh 中要把 python 的绝对地址放上去才行,比如下面这种:

    ```
    #!/usr/bin/bash
    cd /home/alex/Desktop/mycodes
    /usr/bin/python3 timer_test.py
    ```
    xratzh
        28
    xratzh  
       2018-04-21 20:46:10 +08:00
    *和*/1 和 1 的不一样哈哈哈
    lhpshaohan4
        29
    lhpshaohan4  
       2018-04-21 20:54:17 +08:00 via iPhone
    /etc/pam.d/crond
    #session required pam_loginuid.so #注释此行
    fantastM
        30
    fantastM  
       2018-04-21 22:08:08 +08:00
    lance6716
        31
    lance6716  
       2018-04-22 01:04:06 +08:00 via Android
    @Hopetree 孔乙己:shell 有四种登录方式
    q397064399
        32
    q397064399  
       2018-04-22 11:52:16 +08:00
    :doge:
    q397064399
        33
    q397064399  
       2018-04-22 11:52:51 +08:00

    关爱楼主
    yujieyu7
        34
    yujieyu7  
       2018-04-22 13:51:54 +08:00 via iPad
    已经歪成搞笑贴了,楼主还是要细心点啊
    8bit
        35
    8bit  
       2018-04-22 14:19:26 +08:00 via Android
    :doge
    :doge:
    ls2110609
        36
    ls2110609  
       2018-04-22 16:44:37 +08:00
    ...多看书不好吗
    Hopetree
        37
    Hopetree  
    OP
       2018-04-22 20:44:59 +08:00
    @lance6716
    @fantastM
    @q397064399
    @ls2110609
    好的,是我开始没有理解这个时间设置,现在时间问题我已经搞清楚了,然后另外一个问题有点疑问,就是如果用脚本执行文件的时候,比如用 shell(或者 Python 脚本)来写文件,这个文件的地址可以是相对路径,直接执行 shell (或者 Python )可以成功,但是如果把这个 shell ( Python 脚本)设定成定时任务就发现文件不会在指定地方生成(我不确定是不是生成到其他地方去了),所以,我只能把所有涉及到文件的地方都写成绝对路径,即使这个文件是在 Python 脚本中的页写成绝对路径,请问,我这种做法是唯一的解决方法吗?
    lance6716
        38
    lance6716  
       2018-04-23 09:20:44 +08:00 via Android
    @Hopetree 你只需要导入$HOME/.profile 或者 bashrc 那些配置就好
    balamiao
        39
    balamiao  
       2018-04-23 11:19:51 +08:00
    额,ubuntu 表示不背这个锅~
    ThirdFlame
        40
    ThirdFlame  
       2018-04-23 12:48:12 +08:00
    @Hopetree
    #!/bin/bash
    cd 路径
    python a.py
    Hopetree
        41
    Hopetree  
    OP
       2018-04-23 13:14:26 +08:00
    @ThirdFlame 不行,这样写不行,python 要改成 /usr/bin/python3 才行,不然运行不了
    kidtest
        42
    kidtest  
       2018-04-23 15:43:06 +08:00
    @Hopetree 涉及到路径的,全部写成绝对路径,包括要执行的脚本里面的路径
    Hopetree
        43
    Hopetree  
    OP
       2018-04-23 15:45:23 +08:00
    @kidtest 是的,我目前就是这样做的,特别是写的 python 代码,里面的地址经常忘了写成绝对路径,所以我才问有没有其他的方法可以不用这样麻烦
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     923 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 21:39 PVG 05:39 LAX 13:39 JFK 16:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86