Skip to content

Commit bffc0e5

Browse files
Merge pull request #30 from HPCNow/main
Merging up to date improvements
2 parents 572623e + 957e3e1 commit bffc0e5

File tree

12 files changed

+6920
-5769
lines changed

12 files changed

+6920
-5769
lines changed

Diff for: .github/workflows/froster-ubuntu-install.yml

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: froster-ubuntu-install
2+
run-name: Froster installs correctly in Ubuntu-latest
3+
on: [push]
4+
jobs:
5+
check-froster-installation:
6+
runs-on: ubuntu-latest
7+
steps:
8+
- uses: actions/checkout@v4
9+
- run: which curl
10+
- run: which python3
11+
- run: which pipx
12+
- run: which gcc
13+
- run: which unzip
14+
- run: pipx environment
15+
- run: ./install.sh
16+
- run: froster --version
17+
18+

Diff for: .vscode/launch.json

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
// Use IntelliSense to learn about possible attributes.
3+
// Hover to view descriptions of existing attributes.
4+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"name": "Python Debugger: Current File with Arguments",
9+
"type": "debugpy",
10+
"request": "launch",
11+
"program": "${file}",
12+
"console": "integratedTerminal",
13+
"args": "${command:pickArgs}"
14+
}
15+
]
16+
}

Diff for: README.md

+54-20
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,46 @@
11
![image](https://user-images.githubusercontent.com/1427719/235330281-bd876f06-2b2a-46fc-8505-c065bb508973.png)
22

3-
Froster is a user-friendly archiving tool for teams that move data between higher cost Posix file systems and lower cost S3-like object storage systems such as AWS Glacier. Froster crawls your Posix file system metadata, recommends folders for archiving, generates checksums, and uploads your selections to Glacier or other S3-like storage. It can retrieve data back from the archive using a single command. Additionally, Froster can mount S3/Glacier storage inside your on-premise file system and also restore to an AWS EC2 instance. To install or update froster run:
3+
Froster is a user-friendly archiving tool for teams that move data between higher cost Posix file systems and lower cost S3-like object storage systems such as AWS Glacier. Froster crawls your Posix file system metadata, recommends folders for archiving, generates checksums, and uploads your selections to Glacier or other S3-like storage. It can retrieve data back from the archive using a single command. Additionally, Froster can mount S3/Glacier storage inside your on-premise file system and also restore to an AWS EC2 instance.
44

5+
</br>
6+
7+
## Installation pre-requisite: packages
8+
9+
### On Debian/Ubuntu
10+
11+
```
12+
sudo apt-get update
13+
sudo apt-get install -y curl pipx git gcc lib32gcc-s1 unzip
14+
```
15+
16+
### On RHEL
17+
18+
```
19+
sudo yum update
20+
sudo yum install -y curl pipx git gcc lib32gcc-s1 unzip
21+
```
22+
23+
### On HPC machine
24+
25+
Please contact your administrator to install these packages:
26+
```
27+
curl pipx git gcc lib32gcc-s1 unzip
528
```
6-
curl -s https://raw.githubusercontent.com/dirkpetersen/froster/main/install.sh | bash
29+
30+
</br>
31+
32+
33+
## Installation
34+
35+
After you installed the pre-requisites, close and open the terminal again to refresh the environment.
36+
To install Froster, execute the following command into your terminal:
37+
38+
```
39+
curl -s https://raw.githubusercontent.com/HPCnow/froster/develop/install.sh | bash
40+
741
```
8-
or `froster update`
42+
43+
</br>
944

1045
## Table of Contents
1146

@@ -71,21 +106,19 @@ There were three motivations behind the creation of `Froster`:
71106

72107
### Installing
73108

74-
Just pipe this curl command to bash to install:
109+
To install Froster, execute the following command into your terminal:
75110

76111
```
77-
curl -s https://raw.githubusercontent.com/dirkpetersen/froster/main/install.sh | bash
112+
curl -s https://raw.githubusercontent.com/HPCNow/froster/develop/froster | bash -s install && source ~/.bashrc
78113
```
79114

80-
and if you have recently installed it with all dependencies and just would like to update the core software, you can use 2 options
115+
### Updating
116+
117+
To update Froster there are 2 options: execute the installation command again or run the following command into your terminal:
81118

82119
```
83120
froster update
84121
```
85-
or if you are updating from an older version from 2023
86-
```
87-
curl -s https://raw.githubusercontent.com/dirkpetersen/froster/main/install.sh | bash -s -- update
88-
```
89122

90123
### configuring
91124

@@ -286,13 +319,13 @@ echo 'alias fro="froster --no-slurm --cores=8 --profile=myceph"' >> ~/.bashrc
286319

287320
#### advanced configuration
288321

289-
Some advanced configuration settings are not offered through a user inferface but you can change them under `~/.config/froster`. For example, `~/.config/froster/general` has one file per setting which makes it very easy to use the settings in shell scripts, for example when writing addon tools:
322+
Some advanced configuration settings are not offered through a user inferface but you can change them under `~/.froster/config`. For example, `~/.froster/config/general` has one file per setting which makes it very easy to use the settings in shell scripts, for example when writing addon tools:
290323

291324
```
292-
DEFAULT_STORAGE_CLASS=$(cat ~/.config/froster/general/s3_storage_class)
325+
DEFAULT_STORAGE_CLASS=$(cat ~/.froster/config/general/s3_storage_class)
293326
```
294327

295-
a few advanced settings at ~/.config/froster/general deserve more explanation:
328+
a few advanced settings at ~/.froster/config/general deserve more explanation:
296329

297330
* min_index_folder_size_gib (Default: 10)
298331

@@ -480,7 +513,7 @@ Now let's take it to the next level. Small datasets are not really worth archivi
480513
```
481514
froster archive --older 1095 --larger 1024
482515
483-
Processing hotspots file /home/users/dp/.config/froster/hotspots/@XxxxermanLab.csv!
516+
Processing hotspots file /home/users/dp/.froster/config/hotspots/@XxxxermanLab.csv!
484517
485518
Run this command to archive all selected folders in batch mode:
486519
@@ -502,6 +535,7 @@ Total space to archive: 54,142 GiB
502535

503536
Note: you can also use `--newer xxx --larger yyy to identify files that have only been added recently`
504537

538+
505539
### Special use cases
506540

507541
#### Recursive operations
@@ -519,7 +553,7 @@ Froster.smallfiles.tar is created prior to uploading. When restoring data Froste
519553
To avoid tarring you can set max_small_file_size_kib to 0 using this command. The default is 1024 (KiB) or you can use the `archive --notar` option.
520554

521555
```
522-
echo 0 > ~/.config/froster/general/max_small_file_size_kib
556+
echo 0 > ~/.froster/config/general/max_small_file_size_kib
523557
```
524558

525559
#### NIH Life Sciences metadata
@@ -624,7 +658,7 @@ vd ~/my_department.csv
624658

625659
### Error: Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
626660

627-
This error can occur when using `froster restore --aws`. To resolve this problem delete or rename the ssh key `~/.config/froster/cloud/froster-ec2.pem` (or froster-ec2.pem in your shared config location)
661+
This error can occur when using `froster restore --aws`. To resolve this problem delete or rename the ssh key `~/.froster/config/cloud/froster-ec2.pem` (or froster-ec2.pem in your shared config location)
628662

629663
### Why can't I use Froster to archive to Google Drive, Sharepoint/OneDrive, etc ?
630664

@@ -639,7 +673,7 @@ Each of the sub commands has a help option, for example `froster archive --help`
639673

640674
```
641675
dp@grammy:~$ froster
642-
usage: froster [-h] [--debug] [--no-slurm] [--cores CORES] [--profile AWSPROFILE] [--version]
676+
usage: froster [-h] [--debug] [--no-slurm] [--cores CORES] [--profile aws_profile] [--version]
643677
{config,cnf,index,idx,archive,arc,delete,del,mount,umount,restore,rst,ssh,scp} ...
644678
645679
A (mostly) automated tool for archiving large scale data after finding folders in the file system that
@@ -671,7 +705,7 @@ optional arguments:
671705
--no-slurm, -n do not submit a Slurm job, execute in the foreground.
672706
--cores CORES, -c CORES
673707
Number of cores to be allocated for the machine. (default=4)
674-
--profile AWSPROFILE, -p AWSPROFILE
708+
--profile aws_profile, -p aws_profile
675709
which AWS profile in ~/.aws/ should be used. default="aws"
676710
--version, -v print Froster and Python version info
677711
@@ -690,7 +724,7 @@ dp@grammy:~$ froster config --help
690724
usage: froster config [-h] [--index] [--monitor <[email protected]>] [cfgfolder]
691725
692726
positional arguments:
693-
cfgfolder configuration root folder where .config/froster will be created (default=~ home directory)
727+
cfgfolder configuration root folder where .froster/config will be created (default=~ home directory)
694728
695729
optional arguments:
696730
-h, --help show this help message and exit
@@ -839,4 +873,4 @@ Froster is a good on-ramp to Starfish. If many users in your organization end up
839873

840874
All good things inevitably come to an end. Consider what you might encounter when attempting to restore your data 15 years from now. While AWS Glacier and Rclone will still exist, we cannot guarantee the continued maintenance of components like Textual or DuckDB, or even Froster itself. However, even if certain tools fade away, you can always rely on utilities like Rclone or [Cyberduck](#using-cyberduck-to-browse-glacier) (for smaller amounts of data) to retrieve your data, as it is kept in its original format.
841875

842-
Alternatively, the shell script [s3-restore.sh](https://github.com/dirkpetersen/froster/blob/main/s3-restore.sh) simplifies this process, driving Rclone with the appropriate settings. Using the command `s3-restore.sh list`, you can view all folders archived in the JSON database `foster-archives.json` (default location: `~/.config/froster/`). To restore a specific folder, simply use the command followed by the desired path, for example: `s3-restore.sh /my/shared/folder`. It's worth noting that system administrators might hesitate to endorse tools written in programming languages they aren't familiar with, such as Python. Fortunately, `s3-restore.sh` is a straightforward bash shell script, easily customizable to suit specific needs. Note: You may have to change the AWS profile in `s3-restore.sh` to a profile you find under `~/.aws`
876+
Alternatively, the shell script [s3-restore.sh](https://github.com/dirkpetersen/froster/blob/main/s3-restore.sh) simplifies this process, driving Rclone with the appropriate settings. Using the command `s3-restore.sh list`, you can view all folders archived in the JSON database `foster-archives.json` (default location: `~/.froster/config/`). To restore a specific folder, simply use the command followed by the desired path, for example: `s3-restore.sh /my/shared/folder`. It's worth noting that system administrators might hesitate to endorse tools written in programming languages they aren't familiar with, such as Python. Fortunately, `s3-restore.sh` is a straightforward bash shell script, easily customizable to suit specific needs. Note: You may have to change the AWS profile in `s3-restore.sh` to a profile you find under `~/.aws`

Diff for: froster

-35
This file was deleted.

0 commit comments

Comments
 (0)