F*EX use case: push & pull

With fexpush and fexpull for Unix you can use your F*EX account for file archiving and spreading with versioning.
(On Windows you can use the F*EX client fexit to have access to the fexpush archives)

First, you have to initialize fexsend in your local Unix account (if not already done).
Example:

framstag@tux:~: fexsend -I
F*EX server URL: fex.rus.uni-stuttgart.de
proxy address (hostname:port or empty if none):
Your email address as registered at fex.rus.uni-stuttgart.de: framstag@rus.uni-stuttgart.de
Your auth-ID for framstag@rus.uni-stuttgart.de at fex.rus.uni-stuttgart.de: JFD7gDd
data written to /home/framstag/.fex/id
This saves your authorization data in $HOME/.fex/id

Test it with:

framstag@tux:~: fexsend /etc/profile .
This fexes /etc/profile to yourself.

Now you can use fexpush to store any files or directories on your F*EX server.
Example:

framstag@tux:~: fexpush /usr/local/bin
Server/User: http://fex.rus.uni-stuttgart.de/framstag@rus.uni-stuttgart.de
Recipient: framstag@rus.uni-stuttgart.de (autodelete=no,keep=10,locale=english)
Making fex archive (bin_20170108_201340.tgz):
Archive size: 2 MB
bin/
bin/sysinfo
bin/showmessage
bin/hibernate
bin/usbmount
bin_20170108_201340.tgz: 2 MB in 0 s = 5258 kB/s
Recipient: framstag@rus.uni-stuttgart.de (autodelete=no,keep=10,locale=english)
Location: http://fex.rus.uni-stuttgart.de/fop/dOvv9jXx/bin_20170108_201340.tgz
Every fexpush archive gets an date_time version string added (here: 20170108_201340).
This means you can fexpush the same file/directory later again, but it will be stored with a new version string, if there are changes.

To see a list of your pushed archives, use fexpull -l
Example:

framstag@tux:~: fexpull -l
Server/User: http://fex.rus.uni-stuttgart.de/framstag@rus.uni-stuttgart.de
       2 MB bin:20170108_201340
       0 MB fex:20170110_005940 "test"
      18 MB sw:20170109_140626
      19 MB sw:20170110_133231
("test" is a comment which was added with the fexpush -C option)

On any other account or host you can retrieve these files with fexpull.
If you omit the version, fexpull pulls automatically the newest version.
Example:

framstag@moep:/tmp: fexpull bin
Server/User: http://fex.rus.uni-stuttgart.de/framstag@rus.uni-stuttgart.de
checking storage... 3 MB ok!
bin_20170108_201340.tgz: 2 MB in 0 s (29523 kB/s)
-rwxr-xr-x root/root      1729 2016-12-25 00:56 bin/sysinfo
-rwxr-xr-x root/root       555 2016-12-25 11:31 bin/showmessage
-rwxr-xr-x root/root       272 2016-09-25 21:34 bin/hibernate
-rwxr-xr-x root/root     18998 2017-01-08 20:13 bin/usbmount
Of course you need there also the F*EX clients and your F*EX authorization data, either in $HOME/.fex/id or via environment variable FEXID.
fexsend will show it on request:
framstag@tux:~: fexsend -I
export FEXID=ZmV4LnJ1cy51bmktc3R1dHRnYXJ0LmRlIGZyYW1zdGFnQHJ1cy51bmktc3R1dHRnYXJ0LmRlIFhYWFhYWFg=;history -d $((HISTCMD-1))
To see the URLs of your pushed archives, use:
framstag@tux:~: fexpull -L
Server/User: http://fex.rus.uni-stuttgart.de/framstag@rus.uni-stuttgart.de
http://fex.rus.uni-stuttgart.de/fop/FGXM2AvI/fex_20170111_091809.tgz
http://fex.rus.uni-stuttgart.de/fop/jYAHkZAE/linuxclone_20170103_191122.tgz
http://fex.rus.uni-stuttgart.de/fop/pYsz3YGA/sw_20170109_140626.tgz
http://fex.rus.uni-stuttgart.de/fop/I8ES3yya/sw_20170110_133231.tgz

You can distribute these URLs whereever you want.

The container format "tgz" is default, but you can also use "tar" or "zip".
But be aware: zip cannot save Unix file attributes!

fexpull will not overwrite files which are newer.

When you call fexpull with the full archivename (with version) it creates an extraction directory with that name, so you can pull archives of different versions.
Example:

framstag@juhu:~: fexpull sw:20170109_140626
framstag@juhu:~: fexpull sw:20170110_133231

STDIN/STDOUT

You can also fexpush STDOUT and fexpull STDIN:
framstag@juhu:~: uname -a | fexpush
Server/User: http://fex.rus.uni-stuttgart.de/framstag
__20170115_013147.gz: 0 kB in 0 s = 3 kB/s
Location: http://fex.rus.uni-stuttgart.de/fop/4C6jpQSX/__20170115_013147.gz
framstag@tux:~: fexpull | cat
Server/User: http://fex.rus.uni-stuttgart.de/framstag
__20170115_013147
Linux juhu 4.4.0-59-generic #80-Ubuntu SMP Fri Jan 6 17:47:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux


framstag@rus.uni-stuttgart.de