能否让我知道您对这个脚本的看法,以及您是否认为可以通过任何方法对其进行改进?
我正在尝试创建一个清理脚本,该脚本将由我们的 Linux 服务器上的 root 用户通过 cron 作业每周运行一次。
在脚本的一部分,我调用了一个文本文件,其中包含可以从中删除的用户名列表,该文件的内容可能每周都会更改。
#!/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
最佳答案
几乎所有地方都应该引用变量。比 cd 更喜欢 pushd/popd(更容易记住之前的路径)。可能更喜欢 find -delete
而不是 spawn-some -exec rm
。添加错误检查 (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
关于linux - shell 清理脚本建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8535537/