cygwin下安装配置crontab

Windows下通过cygwin安装配置crontab执行定时任务

转载请注明出处:http://blog.youkuaiyun.com/zdk_csdn/article/details/71086033


windows环境下可以通过cygwin使用crontab定时执行linux脚本

Cygwin是一个在windows平台上运行的类UNIX模拟环境。
详细安装教程:http://download.youkuaiyun.com/detail/zdk_csdn/9833647

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

这里写图片描述

2、在安装好后检查一下crontab是否已经安装,输入cron按table键就可以列出与cron相关的命令,如下图:

这里写图片描述

3.接下来安装cron服务

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

注释:-I 是安装

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

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

注意:这里使用管理员身份打开cygwin否则安装cron服务时会出现Error installing a service: OpenSCManager: Win32 error 5错误。

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

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

注意:此处执行可能会有错误,别着急继续往下看.
cygrunsrv -S cron 报错:error starting a service :QueryServiceStatus:Win32 error 1062.

解决:执行cron-config 重新安装配置crontab,如下图:
这里写图片描述

please enter the password for user ‘administrator’: (此时输入的密码是看不到的,没关系直接输入;再reenter(重新输入)

5.接下来配置定时任务,首先介绍几条命令

crontab -e #编辑任务
crontab -l #查看任务列表
crontab -r #删除任务
cronevents #查看执行情况
这里写图片描述

(1)首先创建一个shell脚本 CrontabTest.sh 如图:
这里写图片描述
(2)使用crontab -e来创建一个任务,* * * * * /home/CrontabTest.sh>/home/CrontabTest.txt(每分钟执行一次),如下图所示,然后保存退出:
这里写图片描述
这里写图片描述
(3)使用crontab -l来查看,如下图
这里写图片描述

这里写图片描述
(4)查看任务是否被执行,进入CrontabTest.sh所在目录查看CrontabTest.txt文件是否存在并查看其内容
这里写图片描述

转载请注明出处:http://blog.youkuaiyun.com/zdk_csdn/article/details/71086033

<think>嗯,用户想知道如何使用nohup命令后台运行程序以及安装配置。首先,我得回顾一下nohup的基本用法。根据引用[1],nohup的基本结构是nohup Command [ Arg … ] [ & ],所以用户需要把要执行的命令放在nohup后面,然后加上&符号让它在后台运行。比如nohup python script.py &这样。 然后,用户可能关心输出日志的问题。引用[5]提到可以将输出重定向到文件,比如nohup python test.py > my_log.log &,这样日志就保存到my_log.log了。这里要注意,如果用户没有指定输出文件,默认会生成nohup.out,但有时候可能需要明确指定路径,避免权限问题或者找不到日志的情况。 接下来是安装配置的问题。根据引用[4],在Windows环境下,nohup通常不可用,但可以通过Cygwin这样的工具来模拟Linux环境。不过引用[4]也指出Cygwin可能没有完全实现nohup的功能,所以可能需要使用其他方法。但用户的问题可能更偏向于Linux系统,所以重点还是放在Linux配置上。 用户可能还会想知道如何关闭nohup启动的进程。引用[2]提到使用kill命令,需要先找到进程ID,可以用ps或pgrep查找,然后kill -9 PID。这时候可能需要教用户如何查看进程,比如ps aux | grep '进程名'或者jobs -l查看后台任务。 另外,引用[5]还提到了结合crontab定时任务,这可能是一个进阶用法。用户如果需要在特定时间运行程序,可以配置crontab,并在命令前加上nohup和&,确保定时任务在后台持续运行。 需要注意的常见问题,比如退出终端后进程是否继续运行。根据引用[3],添加&符号才能在后台运行,而nohup本身只是忽略挂断信号,两者结合才能保证退出后程序继续执行。还有日志文件的管理,如果程序长时间运行,日志可能过大,需要定期清理或使用日志轮转工具。 用户可能遇到的错误包括忘记加&导致程序挂起,或者没有正确指定输出路径导致权限问题。比如在权限受限的目录下运行,可能无法写入nohup.out,这时候需要指定有写权限的目录。 总结回答的结构应该是先介绍基本用法,然后详细步骤,包括命令示例、日志处理、进程管理和常见问题。同时,根据用户提供的引用,确保引用正确的部分,比如关闭进程的方法引用[2],后台运行需要&引用[3]等。</think>### 如何通过`nohup`命令后台运行程序 #### 1. **基本命令格式** 使用`nohup`后台运行程序的语法为: ```bash nohup Command [参数] [输入/输出重定向] & ``` - **Command**:需要执行的程序或脚本(如`python script.py`)。 - **输入/输出重定向**:默认输出到`nohup.out`,可通过`>`指定日志文件[^5]。 - **&**:将进程放入后台运行[^3]。 #### 2. **具体步骤** **(1) 运行程序并保存日志** ```bash nohup your_command > output.log 2>&1 & ``` - `> output.log`:将标准输出重定向到`output.log`。 - `2>&1`:将标准错误也重定向到同一日志文件。 **(2) 验证进程状态** ```bash ps aux | grep your_command ``` 通过`ps`命令查看进程是否在运行。 **(3) 关闭后台进程** - 查找进程ID: ```bash ps aux | grep your_command ``` - 终止进程: ```bash kill -9 PID # 替换PID为实际进程号[^2] ``` #### 3. **特殊场景处理** - **Windows环境**:通过Cygwin模拟Linux环境,但需注意其功能限制[^4]。 - **定时任务**:结合`crontab`使用`nohup`,确保定时任务后台持续运行: ```bash crontab -e # 添加如下行(每小时运行一次) 0 * * * * nohup /path/to/your_command >> /path/to/logfile.log 2>&1 & ``` #### 4. **常见问题** - **日志文件权限**:确保目标目录有写入权限。 - **终端关闭后失效**:若未加`&`符号,程序可能随终端关闭而终止。 - **输出内容延迟**:部分程序可能因缓冲区未刷新导致日志延迟,可手动调用`flush()`函数。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值