So many of us use SSH to connect to our remote machines and our multifarious embedded devices around the home, that SFTP is the easiest choice when you need to transfer files between them. It's as secure as SSH, uses SSH, and unlike scp, it's able to resume interrupted file transfers and list remote files much like a remote filesystem. However, unlike its FTP namesake, SFTP is still more typically used for ad-hoc transfers rather than as a way for multiple users to access a remote filesystem. That's where SFTPGo can help. SFTPGo augments SFTP with the kind of features you used to expect from an FTP server, including user accounts locked to their home directories, virtual accounts, and quota support for limiting storage, bandwidth, and per-user permissions. It's been designed to run constantly in the background, acting as a secure version of an FTP server. As it's written in Go, it's easily installed with Go's go get package manager. It can then be run by typing sftpgo serve on the command line.

To get SFTPGo running, write a simple config file containing your public SSH key, and run the provided SQL script to create the database.

As with old-school FTP, you first need to create a configuration file to set up your environment. This is where you set the port on which the server runs, how authentication is going to be handled, user configuration along with usernames and passwords, and a public key, which is mandatory. There's also an HTTP-accessible Rest API, which can be used to do things like send a notification or set a trigger condition, alongside running more typical FTP commands (download, upload, delete, and rename). This all makes SFTPGo sound more complicated than it really is, because, after creating the database with the script provided and the configuration file from the documented example, you have a secure and super useful file server.

Project Website

Data visualizer


Sampler isn't an audio sampler for recording and playing back audio recordings, but it does take a similar approach to command-line output. Instead of sampling audio data, it's been developed to sample the output from whatever command you configure it to watch. It can then display that output using a variety of command-line visualizations, including histograms, bar charts, gauges, text boxes, and sparklines. It's configured via a simple YAML-formatted configuration file that you pass as a single argument when you run the sampler command. This means that you have to manually create a working configuration before you can see any of the fantastic visualizations, but one of the best things about Sampler is that the syntax used within the file is simple to learn and powerful enough to monitor everything from simple CPU usage to remote Kubernetes container statistics.

Alongside monitoring, Sampler also allows you to trigger a script or command when a specific condition is met.

The configuration file's syntax requires a chart type, a scale, legend definitions, and the commands to run, including the logic to parse whatever data you require. You then set a sampling rate for the frequency of the command to be run. You can add as many of these sections as you need and change the layout on the fly while Sampler is running. It all works a little like a simplified curses display engine, created specifically as a kind of command-line dashboard for people who mostly stay in the dashboard, and it works really well. The code itself is licensed under GPLv3, but the binary code that builds it includes a nag reminder in an attempt to get users to pay for a license. It's a little distracting, but if it helps with continued support for Sampler, it's worth the inconvenience.

Project Website

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • GameHub

    If you regularly buy games through Steam, GOG, and Humble Bundle, GameHub can help you keep them organized by bringing them all together into a single library.

  • gbrainy

    Gbrainy can help you develop your logical thinking skills with a collection of brain teasers.

  • Lutris

    If you frequently play games on Linux, you are accustomed to dealing with many different installers and configurations. Lutris can help simplify the process of setting up all your games.

  • This Month's DVD

    Light Distro Sampler This month we give you a multilingual, multidistro DVD with six light Live Linux distributions. Try one, or try them all.

  • FOSSPicks

    This month Graham dives into LMMS, Name Generator, Heaptrack, Binaural Audio Editor, Meshroom, Palapeli, and much more!

comments powered by Disqus

Direct Download

Read full article as PDF:

Price $2.95