/zimmerscp

Manage multiple remote mirrored SCP connections for file transfers, and keep them in sync!

Primary LanguageJavaApache License 2.0Apache-2.0

ZimmerSCP (C)2013-2024 Bo Zimmerman
Please read the LICENSE file and jsch.LICENSE file for license information
Please read the NOTICE file for credits information

Features:
One or more remote scp filesystem trees plus one local filesystem tree.
Automatically sync changes between two or more remote directories.
Automatically maintain a 00INDEX-formatted file in remote directories.
Backup changed files locally automatically
Perform common file operations, such as soft links, rename, delete, create files and directories.
View and Edit remote and local text files, with Ctrl-F search.
Maintain numerous configurations

Purpose:
This program is a GUI based SCP (Secure CoPy) client.  It utilizes two or more windows for multiple mirrored remote filesystems, allowing files to be copied, deleted, edited, soft-linked, or renamed while keeping them in sync with each other.

Running:
ZimmerSCP was written and compiled with sun jdk1.6.  If you have a JRE installed, running may be just a matter of executing "zimmerscp.jar".  Otherwise, you can run it on the command line with:
/path/to/jre1.6/bin/java -jar zimmerscp.jar

Screen:
The window is divided into multiple columns/windows.  The leftmost is for a local file system and the remainder for the remote filesystems to keep in sync with each other.

The top colored bar above each file system contains the host and path for each filesystem.  Above that are control icons for Refreshing/Reloading the view, Settings for the view, removing that remote filesystem, and adding a new remote filesystem.  * Each of the remote path trees should begin  identical to each other for ZimmerSCP to be valuable.

Clicking on the settings icon will bring up a window for that local or remote file system.  

At the bottom of the leftmost (local) filesystem column is a small area where settings for all columns can be saved and restored.

Settings:
When clicking on the colored bar in the leftmost (local) filesystem, a popup window appears where you can set the local file system path to appear in that section, along with the backup directory where remotely changed files can optionally be saved.  A checkbox determines whether remote 00INDEX files that get automatically changed are backed up in the backup directory, and a second checkbox determines whether any remote files that are copy-replaced are backed up in the backup directory before replacement. The local filesystem is a file work area, for new files to upload or to hold downloaded files, and need not match the remote file trees in any way.

When clicking on the settings icon above one of the right columns for a  remote filesystem, a popup window appears where you can set the remote filesystem scp host name, the scp login username and password, and the remote initial path to CD into. The first checkbox, to manage 00INDEX files, will add any new files added to each directory to a 00INDEX file located in the same directory, after asking the user for a description of the file.  The last checkbox, to create new 00INDEX files, will add a new 00INDEX file when a file is added to a directory without a 00INDEX file.  The middle checkbox, to "Sync with Others", will mirror any file additions, deletes, renames, or edits made in that remote filesystem to the other remote filesystem.

At the bottom left of the window, in the Local Filesystem column, is the Configurations drop down.  Once you have set up your remote and local filesystem columns, you can save the configuration by typing a name for it into the textbox at the very bottom, and then clicking the disk icon to save it.  This named configuration will then appear in the drop down box, and may be selected to re-load it.   When using a saved configuration, clicking the disk icon again will update that configuration.  Clicking the delete X icon will delete the currently loaded configuration.

Filesystems:
Each filesystem will show the topmost directory as a node, under which a tree of files and directories appear when the node is clicked on.

Files may be freely copied between the various file systems by dragging individual files from one filesystem, to a *directory* node in a different filesystem. 

Dragging files from one directory to another within the Local filesystem will move the files, while dragging files from one directory to another within any Remote filesystem will create a softlink of the source file in the target directory.

Right-clicking on a directory allows you to get information about, delete recursively, rename, or make a new directory inside that directory. 

Right-clicking on a file allows you to get information about, rename, delete, view (text only!), or edit (text only!) the file.

Editor:
The text file editor supports cut and paste, and search with cntrl-f and cntrl-n to repeat last search.

TODO:
Add ability to filter tree nodes down to unmatched files