Rucio User guide

In this guide you'll learn how to use Rucio for managing data transfers.

The current version is version of Rucio is 38LTS.

Main concepts

Files are the smallest operational unit of data in Rucio.

Files can be grouped into datasets (a named set of files).

Datasets can be grouped into containers (a named set of datasets or, recursively, containers).

A DID (Data IDentifier) identifies a single file, dataset or container. It has the format: <scope>:<name>.

The scope is used to partitions the namespace into several sub namespaces.

A Rucio Storage Element (RSE) is the logical abstraction of a storage system.

Replica management is based on replication rules defined on data identifiers (files, datasets, containers). A replication rule defines the number of replicas to be available for the considered data on a list of RSEs.

User Registration

A web tool for registering with RUCIO is available at https://$VO-registration.rucio.cloud.infn.it. E.g., if your VO is wp6, go to https://wp6-registration.rucio.cloud.infn.it and login with your wp6 IAM credentials. After authentication, you will see the message "Do you want to create a RUCIO account? If yes, click here". After the click, you'll automatically be registered in the wp6.rucio.cloud.infn.it RUCIO server. The log of the process will be shown on the same web page.

With this registration, users belonging to the rucio-mon IAM group (or sub-group) will also have access to the RUCIO monitoring/logs Grafana dashboard at https://grafana.rucio.cloud.infn.it. Once logged in through IAM credentials, just click the "Dashboards" item on the left-side menu to open the VO-specific dashboard folder, from where you'll have access to the logs and plots.

This Grafana instance is shared among all the Virtual Organizations, please select yours at login.

Note

Users not belonging to the rucio-mon IAM group will not be blocked at login. If you do not belong to the group, upon login you will simply have no access to any plot, log or metric.

Client setup and user login

Ask the operator of the Rucio server that you want to use if there is a Rucio user client docker image that can be used. If a customized client for your VO does not exists, a general purpose client image is available at harbor.cloud.infn.it/testbed-dm/rucio-client:v38.5.1 For using this image, you must provide your VO-specific rucio.cfg configuration file, e.g.:

# rucio.cfg
[policy]
 permission = generic
 schema = generic
 lfn2pfn_algorithm_default = wp6tb_lfn2pfn
[client]
 rucio_host = https://wp6.rucio.cloud.infn.it
 auth_host = https://wp6-auth.rucio.cloud.infn.it
 auth_type = oidc
 ca_cert = /etc/pki/tls/certs/ca-bundle.crt
 verify_ssl = True
 oidc_issuer = dc-iam-tb
 oidc_polling = true
 auth_oidc_refresh_activate = true
 auth_oidc_refresh_before_exp = 20
 request_retries = 3
 auth_token_file_path = /tmp/token
 oidc_scope = fts offline_access openid profile wlcg wlcg.groups storage.create:/user/<iam_username> storage.read:/ storage.modify:/user/<iam_username>

The VO-specific parameters to set are: lfn2pfn_algorithm_default, rucio_host, auth_host, oidc_issuer and oidc_scope. In the above example, designed for the wp6 instance, there is a user specific parameter: <iam_username>, to be replaced with your username in IAM. However this is not always the case, e.g. for Euclid VO no user info is required, being oidc_scope = offline_access openid profile wlcg wlcg.groups:/euclid/prod.

You can deploy the Rucio user client container by running:

$ docker run -it -e RUCIO_ACCOUNT=<RUCIO USER ACCOUNT> -v $PWD/rucio.cfg:/opt/rucio/etc/rucio.cfg harbor.cloud.infn.it/testbed-dm/rucio-client:v38.5.1 -- bash
Enable shell completion on the rucio commands
[root@f162ed0caf1d user]#

where <RUCIO USER ACCOUNT> is the name of Rucio account to login with.

To trigger the authentication, execute:

$ rucio whoami

The command will output the authentication URL:

Please use your internet browser, go to:

    https://wp6.rucio.cloud.infn.it/auth/oidc_redirect?BQQjI3QV0jUOopzwbQJh5wI1_polling

and authenticate with your Identity Provider.
In the next 3 minutes, Rucio Client will be polling
the Rucio authentication server for a token.

After authentication, you will see an output like this:

email      : <THE EMAIL ADDRESS YOU PROVIDED>
account    : <RUCIO USER ACCOUNT>
deleted_at : None
updated_at : 2026-04-04T09:17:02
account_type : USER
status     : ACTIVE
suspended_at : None
created_at : 2026-04-04T09:17:02

With the above configuration, a renewed access token will be downloaded at the first Rucio (any) command execution if within 20 minutes (configurable at auth_oidc_refresh_before_exp) the initial token expiration. After expiration a new authentication is required. The renewal feature works until the refresh token stored in the Rucio DB expires (typically after 1 month).

If you do not need/want the token renewal feature, simply remove the lines auth_oidc_refresh__activate and auth_oidc_refresh_before_exp.

If you do not want to use the container, you can install Rucio client software in your Linux user home e.g. via miniconda or micromamba:

$ export ENVRUNTIME=micromamba # or conda
$ $ENVRUNTIME create -n rucio_env python=3.14 -y
$ $ENVRUNTIME activate rucio_env
$ $ENVRUNTIME install -c conda-forge gfal2-util python-gfal2 pip
$ pip install rucio-clients==38.5.1
$ cp rucio.cfg ~/miniconda3/envs/rucio_env/etc/rucio.cfg
# and then
$ rucio --account <RUCIO USER ACCOUNT> whoami

Note

If neither micromamba or conda are present in your system, please refer to the official installation guides:

You may install one of them in your home directory

Infrastructure Checks

RSEs

You can check the underlying infrastructure by listing the available RSEs with:

$ rucio rse list
BARI_USERDISK
CLOUDVENETO_USERDISK
CNAF_USERDISK
CNAF_USERTAPE
LNL_USERDISK
NAPOLI_USERDISK

To get information about a specific RSE:

$ rucio rse attribute list BARI_USERDISK

BARI_USERDISK:  True
QoS:            DISK
backend:        STORM
fts:            https://fts-prod.cloud.infn.it:8446
site:           BARI

You can see how much used space there is on an RSE:

$ rucio rse show BARI_USERDISK
[...]
Usage:
======
  rucio
    files: 10
    free: None
    rse: BARI_USERDISK
    rse_id: e05bde0cf60b41f5a470ee8e647b825a
    source: rucio
    total: 287000
    updated_at: 2026-05-24 12:18:08
    used: 287000
RSE limits:
===========
[...]

Scopes

To get the existing scopes:

$ rucio scope list

user.atroja
user.sgaravat
user.admin
...

Data access policies depend on how the data lake was configured. Within the framework of DataCloud, the default policy is that a user can read everywhere, but can write only on its own scope user.<RUCIO USER ACCOUNT>.

Quota on each RSE

To get how much free space you have on each RSE:

$ rucio account limit list <RUCIO USER ACCOUNT>
+----------------------+------------+---------------+---------------+
| RSE                  |      USAGE |         LIMIT |    QUOTA LEFT |
|----------------------+------------+---------------+---------------|
| BARI_USERDISK        | 2696937472 | 1000000000000 |  997303062528 |
| CLOUDVENETO_USERDISK | 2696937472 | 1000000000000 |  997303062528 |
| CNAF_USERDISK        | 2353004544 | 1000000000000 |  997646995456 |
| CNAF_USERTAPE        |          0 | 1000000000000 | 1000000000000 |
| LNL_USERDISK         | 2696937472 | 1000000000000 |  997303062528 |
| NAPOLI_USERDISK      |          0 | 1000000000000 | 1000000000000 |
+----------------------+------------+---------------+---------------+
+------------------+---------+---------+--------------+
| RSE EXPRESSION   | USAGE   | LIMIT   | QUOTA LEFT   |
|------------------+---------+---------+--------------|
+------------------+---------+---------+--------------+

Note

You cannot get information about other user quota. If you try, you'll get the authentication prompt, that will fail after three times.

File upload

Direct upload of a file with:

$ rucio upload --register-after-upload --rse <RSE> --scope <SCOPE> /PATH/TO/FILE

With the following command, the file /PATH/TO/FILE is uploaded to the RSE RSE and it is given the DID SCOPE:FILE, e.g.:

$ rucio upload --register-after-upload --rse CNAF_USERDISK --scope user.atroja /tmp/test.txt

will upload the file /tmp/test.txt to the RSE CNAF_USERDISK creating the DID user.atroja:test.txt

The output will show the steps executed by the upload command:

2026-05-26 13:27:31,288 INFO    Preparing upload for file test.txt
2026-05-26 13:27:31,687 INFO    Trying upload with davs to CNAF_USERDISK
2026-05-26 13:27:32,036 INFO    Successful upload of temporary file. davs://xfer-datacloud.cr.cnaf.infn.it:8443/datacloud-tb/user/atroja/test.txt.rucio.upload
2026-05-26 13:27:32,134 INFO    Successfully uploaded file test.txt
2026-05-26 13:27:32,505 INFO    Successfully added replica in Rucio catalogue at CNAF_USERDISK
2026-05-26 13:27:32,866 INFO    Successfully added replication rule at CNAF_USERDISK

Note

For RSEs exposing the S3 protocol is not possible to upload a file of size grater than 20 GB.

File DID

After the upload, a DID is created and associated to the data.

To list DIDs matching a specific filename pattern:

rucio did list <SCOPE>:<LOGICAL FILENAME PATTERN> --filter 'type=all'

For example:

$ rucio did list user.atroja:upload_* --filter "type=all"
+------------------------------+--------------+
| SCOPE:NAME                   | [DID TYPE]   |
|------------------------------+--------------|
| user.atroja:upload_BARI      | FILE         |
| user.atroja:upload_CNAF_disk | FILE         |
| user.atroja:upload_CNAF_tape | FILE         |
| user.atroja:upload_LNL       | FILE         |
| user.atroja:upload_Napoli    | FILE         |
| user.atroja:upload_Napoli-v2 | FILE         |
+------------------------------+--------------+

Note

Without --filter 'type=all', rucio did list would show only dataset and container DIDs, not files.

The location of the physical replicas of the DID in the storage elements can be retrieved via:

$ rucio replica list file user.atroja:test_TPC-08

+-------------+-------------+------------+-----------+------------------------------------------------------------------------------------------------+
| SCOPE       | NAME        | FILESIZE   | ADLER32   | RSE: REPLICA                                                                                   |
|-------------+-------------+------------+-----------+------------------------------------------------------------------------------------------------|
| user.atroja | test_TPC-08 | 19.000 B   | 464206a8  | CNAF_USERDISK: davs://xfer-datacloud.cr.cnaf.infn.it:8443/datacloud-tb/user/atroja/test_TPC-08 |
| user.atroja | test_TPC-08 | 19.000 B   | 464206a8  | LNL_USERDISK: https://t2-dav-dtcl.lnl.infn.it:2880/user/atroja/test_TPC-08                     |
| user.atroja | test_TPC-08 | 19.000 B   | 464206a8  | BARI_USERDISK: https://webdav-dc.recas.ba.infn.it:8443/dc/user/atroja/test_TPC-08              |
+-------------+-------------+------------+-----------+------------------------------------------------------------------------------------------------+

To get DID attributes:

$ rucio did show user.atroja:test_TPC-08

account:  atroja
adler32:  464206a8
bytes:    19
length:   1
md5:      08939d825c498c157139e2405d428ee1
name:     test_TPC-08
scope:    user.atroja
type:     FILE

Replication

List copies of a DID

Each DID can be replicated on several storage devices by declaring a rule.

To list the rules of a DID:

$ rucio rule list --did user.atroja:test_TPC-08
ID                                ACCOUNT    SCOPE:NAME               STATE[OK/REPL/STUCK]    RSE_EXPRESSION    COPIES    SIZE    EXPIRES (UTC)    CREATED (UTC)
--------------------------------  ---------  -----------------------  ----------------------  ----------------  --------  ------  ---------------  -------------------
d09b16e3a8c24982bbc79f506846492d  atroja     user.atroja:test_TPC-08  OK[1/0/0]               BARI_USERDISK     1         19                       2026-05-03 22:47:27
665064b60c0447d8b8e43d953a6480d3  atroja     user.atroja:test_TPC-08  OK[1/0/0]               CNAF_USERDISK     1         19                       2026-05-25 09:21:19
7023ab2b12b14ae88bac68d8291d4e4c  atroja     user.atroja:test_TPC-08  OK[1/0/0]               LNL_USERDISK      1         19                       2026-05-25 09:21:30

You can also list the rules created by a specific account:

$ rucio rule list --account atroja
ID                                ACCOUNT    SCOPE:NAME                                    STATE[OK/REPL/STUCK]    RSE_EXPRESSION                                      COPIES    SIZE    EXPIRES (UTC)    CREATED (UTC)
--------------------------------  ---------  --------------------------------------------  ----------------------  --------------------------------------------------  --------  ------  ---------------  -------------------
d42fc09f61c34881841627120d17c621  atroja     user.atroja:test-fts-01                       OK[1/0/0]               NAPOLI_USERDISK                                     1         19                       2026-05-03 07:44:09
d09b16e3a8c24982bbc79f506846492d  atroja     user.atroja:test_TPC-08                       OK[1/0/0]               BARI_USERDISK                                       1         19                       2026-05-03 22:47:27
e2a387b2d69d409eb4e1366c639acfcb  atroja     user.atroja:test-right-port-01                REPLICATING[0/1/0]      CNAF_USERDISK                                       1         19                       2026-05-14 16:41:59
95cd9e7607a4477eb1468c6baa592e29  atroja     user.atroja:test-rucio35-01                   OK[1/0/0]               CNAF_USERDISK                                       1         19                       2026-05-30
6e97f4133f2a418da07f678e36c97aab  atroja     user.atroja:first-upload                      REPLICATING[0/1/0]      CLOUDVENETO_USERDISK                                1         19

rucio rule list provides the state of a rule, as well as the expiration date (if any).

Create single copy of a DID

If I want to replicate an object on one or more RSE, the only thing to do is to add a rule to its DID, stating how many copies and where to replicate.

To create a single copy of a DID on a specific RSE:

$ rucio rule add --copies 1 --rses BARI_USERDISK user.atroja:test_TPC-08

d09b16e3a8c24982bbc79f506846492d

The output is the id of the new rule.

You can also create a rule with an expiration date. Rucio will automatically delete the copy of the file corresponding to this rule at the set time.

$ rucio rule add --copies 1 --rses NAPOLI_USERDISK --lifetime 7200 user.atroja:test_TPC-08

e5c8ce43abcd4f5cb3cac6150fb0d3f4

Note

lifetime is in seconds.

To check the status of the replication, use the rule list command:

$ rucio rule list --did user.atroja:test_TPC-08
ID                                ACCOUNT    SCOPE:NAME               STATE[OK/REPL/STUCK]    RSE_EXPRESSION    COPIES    SIZE    EXPIRES (UTC)    CREATED (UTC)
--------------------------------  ---------  -----------------------  ----------------------  ----------------  --------  ------  ---------------  -------------------
d09b16e3a8c24982bbc79f506846492d  atroja     user.atroja:test_TPC-08  OK[1/0/0]               BARI_USERDISK     1         19                       2026-05-03 22:47:27
665064b60c0447d8b8e43d953a6480d3  atroja     user.atroja:test_TPC-08  OK[1/0/0]               CNAF_USERDISK     1         19                       2026-05-25 09:21:19
7023ab2b12b14ae88bac68d8291d4e4c  atroja     user.atroja:test_TPC-08  OK[1/0/0]               LNL_USERDISK      1         19                       2026-05-25 09:21:30

OK means a copy of the DID is properly created on the RSE. REPLICATING means the process of copying is still on-going. STUCK means that the copy failed. If you are the Rucio administrator, you can check the logs of the conveyor submitter pod to understand why. If you aren't, but as power-user can access to the log monitor dashboard, look at the conveyor submitter pod logs.

Create multiple copies of a DID

You can create multiple copies on composition of RSE, without specifying exactly which RSE to use to store the copy.

Composition of RSE follows the same rules as the set operators (see the Rucio official guide):

  • Union: A|B;
  • Intersection: A&B;
  • Complement: A\B.

For example, if you want 2 copies of a DID on three RSE, no matter which will store the copy among BARI_USERDISK, CNAF_USERDISK and LNL_USERDISK, the command to run is:

$ rucio rule add --copies 2 --rses 'BARI_USERDISK|CNAF_USERDISK|LNL_USERDISK' user.atroja:dummy-01

b7bbd0e7902f4952b3d30effa9e5be03

$ rucio rule list --did user.atroja:dummy-01

ID                                ACCOUNT    SCOPE:NAME            STATE[OK/REPL/STUCK]    RSE_EXPRESSION                            COPIES    SIZE      EXPIRES (UTC)    CREATED (UTC)
--------------------------------  ---------  --------------------  ----------------------  ----------------------------------------  --------  --------  ---------------  -------------------
e8f1925c5402458397a4d1f1dd3e02f8  atroja     user.atroja:dummy-01  OK[1/0/0]               CLOUDVENETO_USERDISK                      1         43.000 B                   2026-05-05 07:43:46
822a8bcf49fe4c099716c99f61b8209e  atroja     user.atroja:dummy-01  OK[1/0/0]               NAPOLI_USERDISK                           1         43.000 B                   2026-05-05 07:25:20
b7bbd0e7902f4952b3d30effa9e5be03  atroja     user.atroja:dummy-01  REPLICATING[0/2/0]      BARI_USERDISK|CNAF_USERDISK|LNL_USERDISK  2         43.000 B                   2026-05-05 07:49:56

The attributes that can be used in the RSE expression can be seen using (rucio rse attribute list <RSE>).

You can get the list of the RSEs fulfilling a specific RSE expression via:

$ rucio rse list --rses QoS=DISK
BARI_USERDISK
LNL_USERDISK
CLOUDVENETO_USERDISK
CNAF_USERDISK

Attributes can be composed in the same way as RSE names. Filters created in this way are processed from left to right. You can use parentheses to force the processing order.

Thus, you can trigger the replica creation via the usual command:

$ rucio rse list --rses "QoS=DISK\backend=DCACHE"

CNAF_USERDISK
BARI_USERDISK
CLOUDVENETO_USERDISK

$ rucio rule add --copies 2 --rses "QoS=DISK\backend=DCACHE" user.atroja:test_TPC-08

2135ac42227645a6a7b2219496585d0b

$ rucio rule list --did user.atroja:test_TPC-08

ID                                ACCOUNT    SCOPE:NAME               STATE[OK/REPL/STUCK]    RSE_EXPRESSION           COPIES    EXPIRES (UTC)        CREATED (UTC)
--------------------------------  ---------  -----------------------  ----------------------  -----------------------  --------  -------------------  -------------------
d09b16e3a8c24982bbc79f506846492d  atroja     user.atroja:test_TPC-08  OK[1/0/0]               BARI_USERDISK            1                              2026-05-03 22:47:27
665064b60c0447d8b8e43d953a6480d3  atroja     user.atroja:test_TPC-08  OK[1/0/0]               CNAF_USERDISK            1                              2026-05-25 09:21:19
7023ab2b12b14ae88bac68d8291d4e4c  atroja     user.atroja:test_TPC-08  OK[1/0/0]               LNL_USERDISK             1                              2026-05-25 09:21:30
e5c8ce43abcd4f5cb3cac6150fb0d3f4  atroja     user.atroja:test_TPC-08  OK[1/0/0]               NAPOLI_USERDISK          1         2024-11-04 00:50:51  2024-11-03 22:50:51
2135ac42227645a6a7b2219496585d0b  atroja     user.atroja:test_TPC-08  OK[2/0/0]               QoS=DISK\backend=DCACHE  2                              2026-05-03 23:08:28

Note

$ rucio rse list --rses "QoS=DISK\backend=DCACHE" means list RSEs with QoS=DISK and backend not equal to DCACHE; "QoS=DISK&backend=DCACHE" means list RSEs with QoS=DISK and backend equal to DCACHE; "QoS=DISK|backend=DCACHE" means list RSEs with QoS=DISK or backend equal to DCACHE

Metadata

Get and set metadata

To get the default metadata of a specific DID:

$ rucio did metadata list user.atroja:test_TPC-08

access_cnt:      None
accessed_at:     None
account:         atroja
adler32:         464206a8
availability:    AVAILABLE
bytes:           19
campaign:        None
...

You can set the metadata of a specific DID by adding each metadata as a pair key-value, using the JSON-plugin:

$ rucio did metadata add --key dog --value labrador user.atroja:dummy-01
$ rucio did metadata add --key animal --value dog user.atroja:dummy-01

To get the JSON metadata:

$ rucio did metadata list --plugin=JSON user.atroja:dummy-01
dog: labrador
animal: dog

Query metadata

You can query data using a single metadata:

$ rucio did list --filter 'animal=dog'  user.atroja:*

+----------------------+--------------+
| SCOPE:NAME           | [DID TYPE]   |
|----------------------+--------------|
| user.atroja:dummy-01 |              |
+----------------------+--------------+

A pair of metadata (AND):

$ rucio did list --filter 'animal=dog,dog=labrador' user.atroja:*

+----------------------+--------------+
| SCOPE:NAME           | [DID TYPE]   |
|----------------------+--------------|
| user.atroja:dummy-01 |              |
+----------------------+--------------+

A pair of metadata (OR):

$ rucio did list --filter 'animal=dog;dog=rottweiler' user.atroja:*

+----------------------+--------------+
| SCOPE:NAME           | [DID TYPE]   |
|----------------------+--------------|
| user.atroja:dummy-01 |              |
+----------------------+--------------+

Deletion

To delete a metadata:

$ rucio did metadata remove --key dog user.atroja:dummy-01

$ rucio did metadata list --plugin=JSON user.atroja:dummy-01
animal: dog

Datasets and Containers

Once a file is uploaded, it can be attached to a dataset. Dataset can be attached to containers.

Create a dataset/container:

$ rucio did add --type dataset user.atroja:dddd1

Added user.atroja:dddd1
$ rucio did add --type container user.atroja:ccccc1

Added user.atroja:ccccc1

Attach a DID to a dataset/container:

$ rucio did content add -to user.atroja:dddd1 user.atroja:dummy-01

DIDs successfully attached to user.atroja:dddd1

List content of a dataset/container:

[root@a098c8d9e1be user]# rucio did content list user.atroja:dddd1
+----------------------+--------------+
| SCOPE:NAME           | [DID TYPE]   |
|----------------------+--------------|
| user.atroja:dummy-01 | FILE         |
| user.atroja:dummy-02 | FILE         |
| user.atroja:dummy-03 | FILE         |
| user.atroja:dummy-04 | FILE         |
...

If you want a detailed list, use rucio replica list file <DID>.

To get where it is replicated:

$ rucio replica list dataset --deep user.atroja:dddd1

DATASET: user.atroja:dddd1
+----------------------+---------+---------+
| RSE                  |   FOUND |   TOTAL |
|----------------------+---------+---------|
| NAPOLI_USERDISK      |       1 |       1 |
| LNL_USERDISK         |       1 |       1 |
| CLOUDVENETO_USERDISK |       1 |       1 |
| BARI_USERDISK        |       1 |       1 |
+----------------------+---------+---------+

Datasets/containers can be open or close. You can attach DIDs to them only if they're open. Closed datasets/container cannot be opened again.

Note

It is best practice to create rules only on closed datasets/containers.

To check if the dataset/container is open or close:

$ rucio did show user.atroja:dddd1

account:     atroja
bytes:       0
expired_at:  None
length:      0
monotonic:   False
name:        dddd1
open:        True
scope:       user.atroja
type:        DATASET

Download

To download a DID:

$ rucio download user.atroja:dummy-01

2026-05-05 08:03:03,707   INFO    Processing 1 item(s) for input
2026-05-05 08:03:05,851   INFO    No preferred protocol impl in rucio.cfg: No section: 'download'
2026-05-05 08:03:05,852   INFO    Using main thread to download 1 file(s)
2026-05-05 08:03:05,852   INFO    Preparing download of user.atroja:dummy-01
2026-05-05 08:03:06,097   INFO    Trying to download with davs and timeout of 60s from LNL_USERDISK: user.atroja:dummy-01
2026-05-05 08:03:06,249   INFO    Using PFN: davs://t2-dav-dtcl.lnl.infn.it:2880/user/atroja/dummy-01
/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py:1061: InsecureRequestWarning: Unverified HTTPS request is being made to host 'rucio-poc-icsc.90.147.174.22.myip.cloud.infn.it'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(
2026-05-05 08:03:07,291   INFO    File user.atroja:dummy-01 successfully downloaded. 43.000 B in 0.86 seconds = 0.0 MBps
----------------------------------
Download summary
----------------------------------------
DID user.atroja:dummy-01
Total files (DID):                            1
Total files (filtered):                       1
Downloaded files:                             1
Files already found locally:                  0
Files that cannot be downloaded:              0

Files are downloaded in ./<scope>/<filenames>:

$ ls .
user.atroja

$ ls user.atroja
user.atroja/dummy-01

Deletion

Rule deletion

  • Delete rule by id:
rucio rule remove b7bbd0e7902f4952b3d30effa9e5be03
  • Delete rule by DID and RSE:
rucio rule remove --rse CLOUDVENETO_USERDISK user.atroja:dummy-01

The rule will be deleted after 1h:

$ rucio rule list --did user.atroja:dummy-01

ID                                ACCOUNT    SCOPE:NAME            STATE[OK/REPL/STUCK]    RSE_EXPRESSION                            COPIES    SIZE      EXPIRES (UTC)        CREATED (UTC)
--------------------------------  ---------  --------------------  ----------------------  ----------------------------------------  --------  --------  -------------------  -------------------
e8f1925c5402458397a4d1f1dd3e02f8  atroja     user.atroja:dummy-01  OK[1/0/0]               CLOUDVENETO_USERDISK                      1         43.000 B  2024-07-05 09:00:26  2026-05-05 07:43:46
b7bbd0e7902f4952b3d30effa9e5be03  atroja     user.atroja:dummy-01  OK[2/0/0]               BARI_USERDISK|CNAF_USERDISK|LNL_USERDISK  2         43.000 B  2024-07-05 09:00:15  2026-05-05 07:49:56
822a8bcf49fe4c099716c99f61b8209e  atroja     user.atroja:dummy-01  OK[1/0/0]               NAPOLI_USERDISK                           1         43.000 B                       2026-05-05 07:25:20

A DID with no rules, will be deleted automatically.

DID deletion

To delete a DID:

$ rucio did remove user.atroja:dummy-01

2026-05-05 08:02:16,112   INFO    CAUTION! erase operation is irreversible after 24 hours. To cancel this operation you can run the following command:
rucio did remove --undo user.atroja:dummy-01

$ rucio did metadata list user.atroja:dummy-01 | grep expir
expired_at:      2026-05-06 08:02:16

The DID will be actually deleted after 24h. In the meantime DID deletion request can be undone by running rucio did remove --undo <DID>.

Official Rucio Guide

This guide is only a quick start summary. Much more details can be found in the Official Rucio Guide.