![带有 pure-pw 列表的 pure-quotacheck 的 cron 作业](https://linux22.com/image/86544/%E5%B8%A6%E6%9C%89%20pure-pw%20%E5%88%97%E8%A1%A8%E7%9A%84%20pure-quotacheck%20%E7%9A%84%20cron%20%E4%BD%9C%E4%B8%9A%20.png)
我想自动化纯 ftp 服务器的配额检查过程。
我已经阅读了文档,所以我可以这样做pure-quotacheck -d /path2/home -u user
我能想到的最简单的方法是将 pure-pw list (因为它显示用户和主页路径)与上述命令结合起来,但我不知道如何将两者结合起来。
到目前为止,我想出了:
for s r in $(pure-pw list) | {print $1 $2}; do pure-quotacheck -u $s -d $r; done
但我得到
意外标记“r”附近出现语法错误
$ pure-pw list
def /home/def/./
我还需要从 pure-pw 列表的输出中删除“/./”。
答案1
要将行拆分为变量,您可以使用read
(尽管有许多注意事项,就像在 shell 中处理文本时一样):
pure-pw list | while read s r; do pure-quotacheck -u "$s" -d "$r"; done
$r
这允许您在调用之前进行处理pure-quotacheck
,例如删除/./
.您还可以pure-pw
按照您的建议通过处理 的输出来做到这一点:
pure-pw list | sed 'sX/./$XX' | while read s r; do pure-quotacheck -u "$s" -d "$r"; done
看当字符串中有“http://”时,sed如何替换?那里有用法的解释sed
。