2025-06-29 06:15:29
руководство по использованию команды `at` в Linux с датами в ISO-формате
### 1. Установка `at`
Если команда `at` не установлена, установите её:
```bash
# Для Debian/Ubuntu
sudo apt-get install at
# Для Red Hat/CentOS
sudo yum install at
```
Запустите и включите демон `atd`:
```bash
sudo systemctl start atd
sudo systemctl enable atd
```
Проверьте статус:
```bash
sudo systemctl status atd
```
### 2. Постановка задачи в очередь на выполнение
#### Формат команды:
```bash
at HH:MM YYYY-MM-DD
```
где:
- `HH:MM` — время в 24-часовом формате;
- `YYYY-MM-DD` — дата в ISO-формате.
#### Пример:
Запланировать выполнение команды `backup.sh` 1 июля 2025 года в 23:00:
```bash
echo "/path/to/backup.sh" | at 23:00 2025-07-01
```
Или интерактивно:
```bash
at 23:00 2025-07-01
```
После этого вы попадёте в приглашение ввода, где можно написать несколько команд, например:
```bash
/path/to/backup.sh
/path/to/cleanup.sh
```
Для завершения нажмите `Ctrl+D`.
### 3. Просмотр очереди задач `at`
Для просмотра всех запланированных заданий используйте:
```bash
atq
```
Вывод будет примерно таким:
```
1 2025-07-01 23:00 a user
2 2025-07-02 08:00 a user
```
- `1`, `2` — номера заданий;
- дата и время — время выполнения;
- `a` — очередь (обычно `a`);
- `user` — имя пользователя, от которого запланирована задача.
### 4. Удаление (отмена) задачи из очереди
Чтобы удалить задание, используйте команду `atrm` с номером задания из вывода `atq`:
```bash
atrm
```
Пример:
```bash
atrm 1
```
Удалит задание с номером 1.
### 5. Дополнительные советы
- Используйте абсолютное указание времени и даты в формате ISO, чтобы избежать ошибок:
```bash
at 09:30 2025-12-31
```
- Для выполнения команды через некоторое время от текущего момента можно использовать относительные выражения:
```bash
echo "your_command" | at now + 2 hours
```
- Все команды в `at` выполняются с правами пользователя, который их запланировал.
## Итог: основные команды
| Действие | Команда | Пример |
|--------------------------|---------------------------------|---------------------------------|
| Запланировать задачу | `at HH:MM YYYY-MM-DD` | `echo "ls -l" | at 14:00 2025-07-01` |
| Просмотреть очередь | `atq` | `atq` |
| Удалить задачу | `atrm ` | `atrm 2` |
Back to list