Crontab在Windows上的Ubuntu上不使用Bash

时间:2016-12-22 10:35:50

标签: windows bash ubuntu cron windows-subsystem-for-linux

我正在尝试安排一个bash脚本在Windows 10的Windows上运行Ubuntu上的Bash。每次我写cron时,我都会在终端中收到以下错误消息:

crontab: installing new crontab
/var/spool/cron/: mkstemp: Permission denied
crontab: edits left in /tmp/crontab.4q0z3i/crontab

以下是crontab条目的内容:

# m h  dom mon dow   command
27 10 * * * /home/admin/test.sh > /home/admin/logs/test.log 2>&1   

这到底发生了什么?

8 个答案:

答案 0 :(得分:22)

您需要将自己添加到crontab组。

usermod -a -G crontab (username)

完成此操作后,您还需要确保cron正在运行。通常这是以start cron开头的,但是从我可以告诉的事情来看,新贵在WSL上不起作用,但是sudo cron完成了这项工作。

有一点需要注意的是,一旦关闭所有bash窗口,即使计算机运行,cron也会停止运行。但是,只要打开bash窗口并运行cron,它就会按预期执行。

答案 1 :(得分:3)

github上有一个针对此问题的解决方法,现在似乎无法找到它!

sudo crontab -u $USER -e

答案 2 :(得分:1)

尝试将此powershell命令放在Windows任务中,看看会发生什么

bash -c "rsync -acAXvc --delete --numeric-ids /mnt/d/no_movies/* rsync://10.66.6.66/danielle_no_movies"

bash -c“command”表示使用linux子系统bash shell运行此命令

命令是“rsync --rsync_switches / mnt / windows_drive_letter / source_dir / * rsync:// rsync_daemon_address / rsync_module”

我刚想出来,我还在测试,所以我不能保证它会真正起作用。

我正在从PowerShell窗口运行它,目前没有管理员权限,并且它报告它是“发送增量文件列表”。任务管理器报告说有一个rsync进程正在使用驱动器d执行很多操作:

答案 3 :(得分:0)

似乎你的crontab确实有像这样的setgid权限集,
-rwxr-sr-x 1 root crontab 39024 May 5 2016 /usr/bin/crontab

你应该sudo chown <username> /usr/bin/crontab

然后sudo chmod g+s /usr/bin/crontab

你应该扎根这一切。

答案 4 :(得分:0)

WSL目前不支持后台进程。

答案 5 :(得分:0)

It looks like this ought to start Crontab once using tmux and have it live even if you close your bash session(see here). I haven't tried this yet (but will soon).

答案 6 :(得分:0)

要确保cron实际正在运行,可以键入service cron status。如果它当前未运行,则键入service cron start,您应该会很好。

答案 7 :(得分:0)

运行命令 sudo service cron start 并提供密码。