How to make your life easier on remote Linux servers (SSH)
Tags: productivity
Published: 2019-11-13 13:41:13


When it comes to accessing and performing activities on remote servers using SSH, there are only few choices one can get. Most people use Putty and a graphical SFTP client like WinSCP or FileZilla to get their job done. Alternatively one can use web based control panel like Cockpit or Ajenti, which provides web based terminal and some graphical tools.


But still most of the time it's only the command line which becomes the last resort. Consider a few situation; you have to dig through some error messages from a huge log file of hundreds of mb or several gb.  Or you have to update some configuration file `/etc` directory, which requires to use sudo while saving or changing the file. Command line is the only choice you have, and if you are not really a cli pro or simply do not want to go through all the hassle of using difficult command line options, you might face some difficulty.

Well there is one tool that might be of some help, and it was written specifically to provide simple graphical interface for most common tasks performed on servers.

### Introducing [Snowflake](https://github.com/subhra74/snowflake) SSH client
Its an open source SSH client, with some built in useful tools, hosted on [GitHub.](https://github.com/subhra74/snowflake)
Lets see some common scenario where it can be useful.

### Digging through huge log files
Sure you can use grep, vi, nano or less, but all of them are a bit restricting. Alternatively you can download it to your computer and dig through it, however it will take significant time to download the file. Snowflake has a built in log viewer for this purpose. It analyzes the file on server (without downloading it) and divides it into pages. It allows searching through the pages as well. Result is much less memory consumption and smooth navigation through the file.

### Editing or managing files with sudo
If you need to edit a file, which is modifiable only by root user, you will again have to fall back to command line, using `sudo vi` or `sudo nano`.  Same is true for renaming/creating/deleting files or directories which requires root permission. Snowflake gives you a graphical alternative. Whenever you perform such actions via its built in text editor or file browser, you will be prompted for an option to use sudo. If you agree it will execute sudo for you.
![enter image description here](https://github.com/subhra74/snowflake-screenshots/raw/master/text-editor/12.png)
### Finding files
Unix `find` command is very powerful but also has a tough syntax. If you use Snowflake, you can do powerful search operations without learning all the command line options. Also it supports searching through compressed files like tar and zip as well.

![enter image description here](https://github.com/subhra74/snowflake-screenshots/raw/master/search/14.PNG)

### Built in terminal
If you use WinSCP or FileZilla, you need to launch Putty for performing command line operations. Snowflake has built in terminal emulator with command snippets.
You can save your mostly used commands as snippets and run them later easily.
Not only you can launch the terminal from file browser to switch to a folder in terminal, but also you can even execute a script from file browser itself. 

![enter image description here](https://github.com/subhra74/snowflake-screenshots/raw/master/terminal/18.PNG)
![enter image description here](https://github.com/subhra74/snowflake-screenshots/raw/master/file-browser/2.png)
### View system load and processes
If you are a Linux/Unix pro you can do this easily using `top`. But it's not very friendly if you are new at this. Also `htop` is great but usually not installed on most systems.
Snowflake comes with a built in task manager like utility, which lets you view remote system load and processes easily. You can search, filter and kill processes very easily with an option for sudo. 
![enter image description here](https://github.com/subhra74/snowflake-screenshots/raw/master/system-monitor/21.PNG)

![enter image description here](https://github.com/subhra74/snowflake-screenshots/raw/master/system-monitor/22.png)
### Other helpful utilities
Snowflake comes with many built in utilities like disk space analyzer, port analyzer, systemd service manager, SSH key manager etc which can provide alternative to many complex command like tools.

![enter image description here](https://github.com/subhra74/snowflake-screenshots/raw/master/file-browser/4.png)
![enter image description here](https://github.com/subhra74/snowflake-screenshots/raw/master/disk-analyzer/24.PNG)
![enter image description here](https://github.com/subhra74/snowflake-screenshots/raw/master/linux-tools/25.PNG)
![enter image description here](https://github.com/subhra74/snowflake-screenshots/raw/master/linux-tools/27.PNG)
![enter image description here](https://github.com/subhra74/snowflake-screenshots/raw/master/ssh-keys/28.PNG)

Hope you will find Snowflake useful and it will help you save some time and effort while using SSH and remote servers. If you feel some important utilities are missing, please suggest them on [GitHub](https://github.com/subhra74/snowflake/issues).