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)

  • 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:
  • Example:

    wput /var/log/syslog ftp://jack:salty@ftp.website.com/www/mylogs/ 
  • Use the -u option to force an upload when the destination file already exists.

  • See wput --help or man 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.

  • Hi, Thanks very much for this, this is exactly what i need, i know it's an old thread but i am having problems with directories. When i use wput on remote server it always create directory tree to file destination, is it possible just to copy files without creating whole directory tree on remote? – Aleksandar Đorđević Aug 11 '17 at 11:28

Another useful and secure command you can use would be the scp command which uses ssh to copy files to and fro.

To use this you can use seahorse to create an ssh key pair and copy the public part of the key to ~/.ssh/. You should not protect the password you use for this with a password since you don't want to login to use it. You should probably only use the password pair you use for this for this script. You use the scp -i identity option to select it.

The private key takes the place of a plaintext password.

I assume you could place an invocation of the script in your crontab if desired.

With izx's helpful approach you need to be careful to protect where you place the script to protect the password "salty" for the remote computer from prying eyes. With this approach you'll have to take the same care to protect the private part of the key pair since it is not password protected.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.