I took all the file transfer bits out of weewx and just run the rsync
command in a crontab. It seems more reliable, and easier to troubleshoot.

On Thu, Jul 20, 2023 at 3:06 PM Tomasz Lewicki <[email protected]>
wrote:

> rsync: host key verification failed
>
> Dear Weewx users.
>
> I'm trying to send files generated by Weewx to external webserver (paid
> hosting) with rsync. I'm familiar with rsync, ssh and Linux. Weewx is
> running on Raspberry Pi as 'pi' user. Here are my configs:
>
> /home/pi/.ssh/config
>
> Host CF
> #    HostName external.domain.com <- here of course is real web address
>     HostName 10.20.30.40 <- here of course is real IP
>     Port 222
>     User acetone <- this is my username on remote webserver (hosting)
>
> /etc/weewx/weewx.conf
>
> (...)
>
> [[RSYNC]]
>         # rsync'ing to a webserver is treated as just another report
>         skin = Rsync
>
>         # If you wish to use rsync, you must configure passwordless ssh
> using
>         # public/private key authentication from the user account that
> weewx
>         # runs to the user account on the remote machine where the files
>         # will be copied.
>         #
>         # If you wish to use rsync, set "enable" to "true", then
>         # fill out server, user, and path.
>         # The server should appear in your .ssh/config file.
>         # The user is the username used in the identity file.
>         # The path is the destination directory, such as
> /var/www/html/weather.
>         # Be sure that the user has write permissions on the destination!
>         enable = true
>         server = external.domain.com
> port = 222
>         user = acetone
>         path = domains/external.domain.com/private_html/meteo/
>
>         # To upload files from something other than what HTML_ROOT is set
>         # to above, specify a different HTML_ROOT here.
>         #HTML_ROOT = /var/www/html/weewx
>
>         # Rsync can be configured to remove files from the remote server if
>         # they don't exist under HTML_ROOT locally. USE WITH CAUTION: if
> you
>         # make a mistake in the remote path, you could could
> unintentionally
>         # cause unrelated files to be deleted. Set to 1 to enable remote
> file
>         # deletion, zero to allow files to accumulate remotely.
>         delete = 0
>
> (...)
>
> I can log in to external server with ssh (passwordless) with command:
>
> $ ssh -p 222 [email protected]
>
> or just
>
> $ ssh CF <- this is host from .ssh/config
>
> I got error message from weewx:
>
> Jul 20 21:36:04 WeewxFR24 weewx[28079] DEBUG weeutil.rsyncupload:
> rsyncupload: cmd: [['rsync', '--archive', '--stats', '-e', 'ssh -p 222',
> '/var/www/html/weewx/', '[email protected]:~/domains/
> external.domain.com/private_html/meteo']]
> Jul 20 21:36:04 WeewxFR24 weewx[28079] ERROR weeutil.rsyncupload: rsync
> reported errors. Original command: ['rsync', '--archive', '--stats', '-e',
> 'ssh -p 222', '/var/www/html/weewx/', '[email protected]:
> ~/domains/external.domain.com/private_html/meteo']
> Jul 20 21:36:04 WeewxFR24 weewx[28079] ERROR weeutil.rsyncupload: ****
> Host key verification failed.
> Jul 20 21:36:04 WeewxFR24 weewx[28079] ERROR weeutil.rsyncupload: ****
> rsync: connection unexpectedly closed (0 bytes received so far) [sender]
> Jul 20 21:36:04 WeewxFR24 weewx[28079] ERROR weeutil.rsyncupload: ****
> rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.3]
>
> I can send single file or whole directory with this command applied
> directly from CLI:
>
> $ rsync --archive --stats -e 'ssh external.domain.com -p 222 -l acetone'
> /var/www/html/weewx/ CF:domains/external.domain.com/private_html/meteo/
>
> I can also send files with simpler command (no additional options for -e
> ssh because they are in .ssh/config):
>
> $ rsync --archive --stats -e ssh /var/www/html/weewx/ CF:domains/
> external.domain.com/private_html/meteo/
>
> But *not* with:
>
> rsync --archive --stats -e ssh /var/www/html/weewx/
> [email protected]:domains/external.domain.com/private_html/meteo
>
> And *not* with:
>
> rsync --archive --stats -e ssh /var/www/html/weewx/ external.domain.com:
> domains/external.domain.com/private_html/meteo
>
> As you can see, if .ssh/config is properly filled with data, it is much
> simpler to 'do' rsync. But why it works when executed manually but not from
> inside Weewx? Keys are valid if I can log in without password from CLI.
> Maybe you could do [[RSYNC]] option more flexible and use .ssh/config?
>
> --
> You received this message because you are subscribed to the Google Groups
> "weewx-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/weewx-user/4616524f-f3dd-4485-aa98-5ba3a97a7adcn%40googlegroups.com
> <https://groups.google.com/d/msgid/weewx-user/4616524f-f3dd-4485-aa98-5ba3a97a7adcn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/CA%2Bz%2BvD7ip%2BO_KDPAD7uBfXX6gWCva5G7LFMWM5E4QvCXJ8K_FQ%40mail.gmail.com.

Reply via email to