Eu consegui que funcione no meu sistema. Não é exatamente um daemon no sentido de um serviço do Windows, mas mais uma tarefa em segundo plano do usuário atual, mas funciona para mim.
Instalação e configuração inicial
Eu instalei o WSL para meu usuário e Debian como o aplicativo Linux de sua preferência. De qualquer forma, ele deve funcionar com qualquer distribuição, pois usa apenas rsync
.
No diretório inicial do meu linux, criei dois arquivos: rsyncd.conf
e secrets
.
O arquivo conf:
auth users = nas
secrets file = /home/peter/rsyncd/secrets
hosts allow = 192.168.1.5,192.168.1.11
log file = /home/peter/rsyncd/rsyncd.log
port = 8730
use chroot = false
read only = false
[N_Almacen]
path = /mnt/n/Almacen/rsyncd
[N_AlmacenNB]
path = /mnt/n/AlmacenNB/rsyncd
Estou usando a porta 8730 para evitar ter que executar o daemon como root . Essa também é a razão pela qual eu desativei chroot .
O arquivo de segredos contém nomes de usuário e senhas normalmente.
Como executá-lo
Finalmente a parte complicada. Como rodar isso?
Você pode testá-lo com este comando:
rsync --daemon --config=/home/peter/rsyncd/rsyncd.conf --no-detach
Quando tiver certeza de que a configuração está funcionando, você pode remover a opção --no-detach
e o comando gerará uma tarefa em segundo plano. Mesmo se você fechar todos os terminais bash , a tarefa permanecerá em segundo plano.
Como iniciar automaticamente em segundo plano
Agora, como executar automaticamente no login?
Crie um atalho do Windows para C:\Windows\System32\wsl.exe
e anexe seu comando depois disso. O comando completo será:
C:\Windows\System32\wsl.exe rsync --daemon --config=/home/peter/rsyncd/rsyncd.conf
Agora você pode colocar este atalho na pasta startup para seu usuário.