совет по очистке оболочки - PullRequest
0 голосов
/ 16 декабря 2011

Можете ли вы сообщить мне ваши мысли об этом сценарии, и если вы думаете, что он может быть улучшен любым методом?

Я пытаюсь создать скрипт очистки, который будет запускаться раз в неделю по заданию cron от root на наших серверах linux.

В одной части скрипта я вызываю текстовый файл, в котором будет список имен пользователей, из которых можно удалить, содержимое этого файла может меняться неделя за неделей.

#!/bin/bash
DAY=$(date +"%d%b%Y")
HOME='/home/user'
DOCS='/var/program/alpha/top/is'
SCRATCH='/var/program/beta/top/_temp/'
USER='/home/user/deleteuserdata.txt'
DELUSER=$USER
cd $SCRATCH 
rm -rf _temp-*/
cd $DOCS
while read DELUSER; do
find $DOCS/"$DELUSER"_info* -name "*.pdf" -size +1000k -exec rm {} \;
done < $USER > $HOME/"$DAY"dellogs.txt

1 Ответ

1 голос
/ 16 декабря 2011

Вы должны указывать переменные почти везде. Предпочитаю pushd / popd, чем cd (легче запомнить предыдущий путь). Вероятно, хотите предпочесть find -delete, а не * - 1002 *. Добавьте проверку ошибок (bash -e) и -x, чтобы увидеть, где он находится, когда дело доходит до этого.

#!/bin/bash -ex

DELUSER="$USER" # setting this is useless because it's overriden in the while loop
pushd "$SCRATCH"
rm -Rf _temp-*/ || :
pushd "$DOCS"
while read DELUSER; do
    find "$DOCS/$DELUSER"_info* -name "*.pdf" -size +1000k -print -delete
done <"$USER" >"$HOME/${DAY}dellogs.txt"
popd
popd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...