你的位置:首页 > 操作系统

[操作系统]如何在cygwin中运行crontab定时脚本


  用到cygwin,自然是希望能多处理一些类似linux的任务了,那就自然少不了定时任务crontab,看到网上教程不少,自己运行一个测试却也不那么容易,下面就记录我的安装过程,以供参考吧!

  1、首先,你肯定已经在运行cygwin了,那就再次点击setup.exe安装程序,这里选择的时候可以添加一个更快的镜像地址,因为自带的里面并没有http://mirrors.163.com/cygwin,http://mirrors.sohu.com/cygwin,如下图一, 选择admin下文件install安装crontab相关软件,如图二:

  2、安装服务

    cygrunsrv -I cron -p /usr/sbin/cron -a -D

    -I 是安装

    cron是服务名

    -p /usr/sbin/cron 是指定服务程序的目录

    -a 后跟运行服务时需要添加的参数,这里运行服务的命令是 /usr/sbin/cron -D

  3、安装完服务之后,需要运行

    cygrunsrv -S cron #来启动这个服务

  4、添加测试crontab定时任务

    crontab -e       */2 * 03 12 * /bin/ls > /cygdrive/c/Users/weiy/Desktop/ls.log    */1 * * 12 * echo "hahahaha" > /cygdrive/c/Users/weiy/Desktop/echo.log

  5、查看定时任务情况

  crontab -l     #查看任务列表  cronevents     #查看执行情况

  

 如果看到这些信息,说明你已经正常运行crontab jobs了,如果没有看到,那么恭喜你,体现你解决问题的能力的时刻到了!

    我遇到的是:(CRON) error (can't switch user context)    #切换用户失败

    解决办法是:cron-config 重新安装配置crontab,如图:

  但是这样还不行,还是一样的错误,还差一步,设置密码: passwd -R

  ok,输入登录密码,这样,就完成了这种方式的问题了。尽情地运行cron吧!

  注:cygwin里不需要再安装windows中已经安装的软件即可运行,举例: php -m  ,   mysql -v , ...