Я новичок в сценариях оболочки, и мне нужна помощь с этим. У меня есть требование переместить последний файл дампа expdp из одного каталога в другой, где он будет храниться 90 дней, а затем будет удален. Эта работа должна выполняться раз в неделю.
Создайте сценарий с чем-то вроде этого;
#!/bin/sh
mv "$(ls -t <name of your file> | head -1)" /directory/it/has/to/go
find /directory/it/has/to/go -type f -mtime 90 -exec rm {} +
Теперь мы должны создать cronjob так этот сценарий выполнения каждую неделю.
$: crontab -e
Добавляют эту строку:
0 0 * * 0 yourscript.sh >/dev/null 2>&1
Я использовал бы crontab
для планирования команды. Чтобы сделать это, выполните crontab -e
и добавьте что-то как следующий как:
0 8 * * Mon bash -c 'cd /path/to/dir; mv "$(ls -t expdp*.dump | head -1)" /another/dir/'
, Который будет искать последний файл, который соответствует expdp*.dump
в /path/to/dir
и перемещает его в /another/dir/
. Запланированный выполнить 8:00, каждый понедельник.
Вы могли использовать что-то вроде этого (я понятия не имею - ли это лучший способ сделать это, когда я просто соединил что-то, и это работает).
#!/bin/bash
cd /source/directory/
cp `ls -1t | head -1` /destination/directory/