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.