How do I automate sending a file to an FTP server with a script?
I need to take make a script that takes a particular log file in /var/log/
and puts it somewhere where I can easily get it (most likely a web or FTP server I have access to). I don't think I want to use mail to send it. Webdav might be an option. It just needs to work without any user interaction, and be pretty fast and painless. Any suggestions? (no password needed, basically)
Solution 1:
- Log files in
/var/log
are usually world-readable and require no password to access. - If you already have an FTP server -- could be a back-end to a web-server too -- the simplest option IMO is to use the
wput
utility.- Install it with
sudo apt-get install wput
if necessary. - The syntax is:
wput [options] [file]... [url]...
- where the URL is of the form:
ftp://[username[:password]@]hostname[:port][/[path/][file]]
- Install it with
-
Example:
wput /var/log/syslog ftp://jack:[email protected]/www/mylogs/
Use the
-u
option to force an upload when the destination file already exists.- See
wput --help
orman wput
for many more options.
Note: Putting the password in plaintext as in the examples above is extremely insecure in general; I strongly recommend creating a restricted FTP account on the server which only allows uploads to a special directory you create for downloading/viewing the logs.