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

问题描述 投票:-2回答:2

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

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

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

我尝试每分钟运行一次,但似乎没有做任何事情。应删除data文件夹的所有子文件夹。

我究竟做错了什么?

linux cron jobs
2个回答
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作业中


0
投票

尝试一下

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

这应该可以解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.