A remote backup utlity. Files are compressed, encrypted, and streamed over an SSH connection. A searchable SQLite database allows file retrival.

Features

Example

Here is a snippet that demonstates how kif can be used.

# help
% kif -h
usage: kif -sgh <FILE> ...
   -s TERM    search for TERM and display results
   -f HASH    fetch the HASH from the store
   -d HASH    delete the HASH from the store
   -h         this help
   
# backup
% kif image.png
Backing up 188K in 1 file(s).
[ 1 / 1 ] Backing up image.png (188K) as 8b1d1606cb5a6221d676ed469578d4811fafe2c2 ... okay! ;-)
Backup completed in 1 second(s).

# skipping
% kif image.png
Backing up 188K in 1 file(s).
[ 1 / 1 ] Skipping image.png with hash 8b1d1606cb5a6221d676ed469578d4811fafe2c2
Backup completed in 0 second(s).

# search
% kif -s image
Searching for image ...
id          hash                                      origin      path                     file        size        date
----------  ----------------------------------------  ----------  -----------------------  ----------  ----------  -----------------
1           8b1d1606cb5a6221d676ed469578d4811fafe2c2  laptop      /Users/will/kif/         image.png   188K        CURRENT_TIMESTAMP

# restore
% kif -f 8b1d1606cb5a6221d676ed469578d4811fafe2c2
Fetching 8b1d1606cb5a6221d676ed469578d4811fafe2c2 to image.png.gpg ...

You need a passphrase to unlock the secret key for
user: "Will Ridgers <xxx@xxx.xxx>"
4096-bit RSA key, ID XXXXXXXX, created XXXXXXXXXX (main key ID XXXXXXXX)

gpg: encrypted with 4096-bit RSA key, ID XXXXXXXX, created XXXXXXXXXX
      "Will Ridgers <xxx@xxx.xxx>"
 okay! ;-)

# delete
% kif -d 8b1d1606cb5a6221d676ed469578d4811fafe2c2
Deleting file with hash 8b1d1606cb5a6221d676ed469578d4811fafe2c2 ... removed!