Você também precisa instalar cygrunsrv
para que possa configurar o cron como um serviço do Windows e, em seguida, execute cron-config
.
Se você quiser que os cron jobs enviem e-mail de qualquer saída, você também precisará instalar exim
ou ssmtp
(antes de executar cron-config
).
Veja /usr/share/doc/Cygwin/cron-*.README
para mais detalhes.
Em relação aos programas sem .exe
extensão, eles provavelmente são scripts de shell de algum tipo. Se você olhar a primeira linha do arquivo, poderá ver qual programa precisa usar para executá-los (por exemplo, " #!/bin/sh
"), então talvez possa executá-los a partir do agendador do Windows chamando o programa shell (por exemplo, " C:\cygwin\bin\sh.exe -l /my/cygwin/path/to/prog
". )
can't switch user context
, embora a solicitação explícita tenha sido feita para NÃO usar outras contas. A troca de conta com cron no cygwin é aparentemente OBRIGATÓRIA. Você deve dizer NÃO para correr como você mesmo ...cronevents
comando para ver os eventos (do log do Windows evengs). Eles nunca são descartados, eu podaria as toras a cada poucos meses.Você tem duas opções:
Instale o cron como um serviço do Windows, usando cygrunsrv:
Os arquivos 'não .exe' são provavelmente scripts bash, então você pode executá-los por meio do agendador do Windows invocando o bash para executar o script, por exemplo:
fonte
gorjeta http://linux.subogero.com/894/cron-on-cygwin/
Inicie a configuração do cygwin e adicione o pacote “cron” da categoria “Admin”.
Executaremos o cron como um serviço pelo usuário SYSTEM. O pobre SYSTEM precisa, portanto, de um diretório inicial e de um shell. O arquivo “/ etc / passwd” irá defini-los.
O início do serviço:
Os usuários locais agora podem definir suas tarefas agendadas desta forma (o crontab iniciará seu editor favorito):
Usuários de domínio : não funciona. O cron ruim não consegue executar tarefas agendadas em nome dos usuários do domínio na máquina. Mas há outra maneira: o cron também executa coisas encontradas na tabela cron no nível do sistema em “/ etc / crontab”. Portanto, insira seu suf lá, para que SYSTEM o faça em seu próprio nome:
Finalmente, algumas palavras sobre as entradas do crontab. Eles são configurações de ambiente ou comandos programados. Como visto acima, no Cygwin é melhor criar um PATH utilizável. O diretório inicial e o shell são normalmente retirados de “/ etc / passwd”.
Quanto às colunas de comandos programados, consulte a página do manual.
Se certas entradas do crontab não forem executadas, a melhor ferramenta de diagnóstico é esta:
fonte
Só queria acrescentar que as opções do cron parecem ter mudado. Precisa passar -n em vez de -D.
fonte
Apliquei as instruções desta resposta e funcionou. Apenas para apontar uma resposta mais tipo copiar e colar (porque o procedimento de instalação do cygwin é uma espécie de anti-cópia-colar implementado)
Clique no botão WinLogo, digite cmd.exe, clique com o botão direito e escolha " Comece como administrador ". No prompt cmd :
Certifique-se de que o instalador não lance nenhum erro no prompt ... Se tiver - você provavelmente tem alguns binários do cygwin em execução ou você não é um administrador do Windows, ou algum bug estranho ...
Agora em cmd promt:
ou qualquer caminho de arquivo completo que você possa ter para cygrunsrv.exe e iniciar o serviço cron como Windows no prompt cmd
Agora, no terminal bash , execute crontab -e
configurar sua entrada cron, um exemplo abaixo:
fonte
Eu descobri como fazer com que o serviço Cygwin cron rodando automaticamente quando eu loguei no Windows 7. Aqui está o que funcionou para mim:
Usando o Bloco de Notas, crie um arquivo
C:\cygwin\bin\Cygwin_launch_crontab_service_input.txt
com conteúdono
na primeira linha eyes
na segunda linha (sem as aspas). Estas são as suas duas respostas aos prompts decron-config
.Crie um arquivo
C:\cygwin\Cygwin_launch_crontab_service.bat
com conteúdo:Adicione um atalho para o seguinte na pasta de inicialização do Windows:
Cygwin_launch_crontab_service.bat
Consulte http://www.sevenforums.com/tutorials/1401-startup-programs-change.html se precisar de ajuda sobre como adicionar ao Startup. BTW, você pode adicionar opcionalmente estes no Startup se desejar:
Cygwin
Servidor XWin
O primeiro executa
e o segundo executa
fonte
A sintaxe correta para instalar o cron no cygwin como serviço do Windows é passar -n como argumento e não -D :
cygrunsrv --install cron --path / usr / sbin / cron --args -n
-D retorna um erro de uso ao iniciar o cron no cygwin:
$
$ cygrunsrv --install cron --path / usr / sbin / cron --args -D
$ cygrunsrv - iniciar cron
cygrunsrv: Erro ao iniciar um serviço: QueryServiceStatus: Erro Win32 1062:
O serviço não foi iniciado.
$ cat /var/log/cron.log
cron: opção desconhecida - D
uso: / usr / sbin / cron [-n] [-x [ext, sch, proc, parc, load, misc, test, bit]]
$
A página abaixo tem uma boa explicação.
Instalando e configurando o Cygwin Cron Service no Windows: https://www.davidjnice.com/cygwin_cron_service.html
PS Eu tive que executar o Terminal Cygwin64 no meu PC com Windows 10 como administrador para instalar o cron como serviço do Windows.
fonte
fonte