Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • We use these variables to provide some examples. The variables are optional. You can use your filenames directly. Please note that the variable for several files have to formatted differently, depending on the preferred access method. 
    • Single File
      • F=/hs/store/users/2023/2023-11-30_liegmahl/home_edvs1.tgz
      • If you have special characters (e.g., spaces, brackets, ...) in your filename: Try to avoid them. Yes, really try to avoid thenthem (this is no joke)! However, if are forced to use special characters it will get nasty. You have

        1. have to quote  the filename and/or

        2. protect the special characters and in the filename with "\": F="/hs/platforms/WORM/aircraft/polar6/macs/exdata/P6-244_ANT_23_24_2311300801/20231130-150529_[Record\ All]/111498_RGB/09835_041255631_500.macs".

        3. and in addition you have to quote the ssh command correctly (see example)

        4. Please understand that support for this kind of "self-made problems" is very limited on our side. We officially only support recommended  characters (e.g., https://www.forschungsdaten-bildung.de/dateien-organisieren)
    • Directories
      • D="/hs/store/users/2023/2023-11-30_liegmahl"
    • Multiple Files (for saminfo.sh):
      1. Create a file containing all files you want to process: FL=<contains-one-file-per-line.txt> (one file per line)
      2. Copy the file to a specific hssrv2 server, e.g. hssrv2a: rsync $FL hssrv2a:/tmp/$FL (Hint: If $FL is located in your $HOME, there is no need to upload it (wink))
      3. execute ssh hssrv2a saminfo.sh <option> -F/tmp/$FL   (see examles below)
    • Multiple Files (for RestAPI):
      • DIR="store/users/2023/2023-11-30_liegmahl"                       # Note: no "/hs" here!
      • FC='"$DIR/home_edvs1.tgz","$DIR/isibhv_personal.tgz","$DIR/isipd_home_pd.tgz"'
  • Some additional tasks can be done with ssh hssrv2 saminfo.sh 
Access method 
& Task
RestAPIssh hssrv '...'
(using CLI)
ssh hssrv 'saminfo.sh ...'
(using RestAPI)
filestat 
(everything/all)
eval $CURL -X GET $SERV/file?path="$F"
eval $CURL  -X PUT  --data \'{\"path\":[$FC]}\' $SERV/batchfile

sls ls -D $F    $"F"'        # use -E to show show 
sls -D "$D/*"    # md5 checksum

saminfo.sh -f"$F" -Csls
saminfo.sh -f"$D" -Csls

ssh hssrv2 'saminfo.sh -ga -f'"$F"
ssh hssrv2 saminfo.sh -ga -f"$D"
ssh hssrv2a saminfo.sh -ga -F/tmp/$FL

filestat
(something)

eval $CURL -X GET $SERV/file?path="$F" | jq -r '. | {path, onlineblocks, flags, error}'
eval $CURL  -X PUT  --data \'{\"path\":[$FC]}\' $SERV/batchfile | jq -r '.infos[] | {path, onlineblocks, flags, error}


like above, but -gs instead of -ga

filestat
(online/offline)
eval $CURL -X GET $SERV/file?path="$F" | jq -r .onlineblocks
eval $CURL  -X PUT  --data \'{\"path\":[$FC]}\' $SERV/batchfile | jq -r '.infos[] | {path, onlineblocks}'


like above, but -go instead of -ga

stage
eval $CURL -X POST $SERV/request/stage?path="$F"
eval $CURL -X PUT  --data \'{\"path\":[$FC]}\' $SERV/request/batchstage

 saminfo.sh -f'"$F" -Cstage
saminfo.sh -f'"$D" -Cstage

like above, but -s instead of -ga

show scheduler state
eval $CURL -X GET $SERV/queues

 --

ssh hssrv2 saminfo.sh -S



 

 

mkdir
--

mkdir/hs/projects/<project>/newdir

--

release

release $F

release -r $DIR

saminfo.sh -f'"$F" -Crelease
saminfo.sh -f'"$D" -Crelease

 

quota

 ssh hssrv2 saminfo.sh -q

--

Count number of
(online/staging)
files in directory

 saminfo.sh -f"$D" -Ccount

 

File flags

The RestAPI and saminfo.sh -g[s|a] provide file information as flags. You can decode them by adding -v1 or take a look into this table:

...