Cron作业命令,每8小时删除一次文件夹的子文件夹

时间:2018-09-13 09:06:38

标签: linux cron jobs

我试图找出精确的命令来设置以自动删除Linux中特定文件夹的子文件夹。该作业应每8小时执​​行一次。

到目前为止我想出了什么:

find . -type d -path "./home/*****/public_html/data/*" -exec rm -rf {} \;

我尝试每分钟运行一次,但是似乎什么也没做。 data文件夹的所有子文件夹都应删除。

我在做什么错了?

2 个答案:

答案 0 :(得分:0)

您可以使用python实现此目的。

创建新的python文件:

vim delete_subfolders.py

放置命令:

import os
import glob
import shutil

sub_folders_pathname = '/home/*****/public_html/data/*'
sub_folders_list = glob.glob(sub_folders_pathname)

for sub_folder_or_file in sub_folders_list:
    #skip deletion if this is a file
    if os.path.isfile(sub_folder_or_file):
        print("found a file name {}, skip deletion".format(sub_folder_or_file))
    #delete the folder
    else:
        shutil.rmtree(sub_folder_or_file)

print("all subfolders have been deleted!!!")

保存并退出文件

运行

python delete_subfolders.py

将python放入cron作业

答案 1 :(得分:0)

尝试

find /home/*****/public_html/data -mindepth 1 -type d -exec rm -rf {} +

这应该可以解决问题。