cheneydog
V2EX  ›  问与答

系统维护,需要监控目录大小,超过大小按照日期删除子文件和子文件夹。

  •  
  •   cheneydog · Oct 27, 2020 · 1999 views
    This topic created in 2051 days ago, the information mentioned may be changed or developed.
    这么个需求,用脚本写起来感觉都好困难。
    如果让你做这个需求,你是愿意写成 shell 、 还是 python 、还是 golang 写好编译成 bin ?
    22 replies    2020-10-28 00:02:57 +08:00
    cheneydog
        1
    cheneydog  
    OP
       Oct 27, 2020
    或者写成 nodejs 的?
    CallMeReznov
        2
    CallMeReznov  
       Oct 27, 2020
    python
    os.listdir
    os.path.getsize


    mv 到单独的文件夹里,为了稳妥,单独操作删除步骤,想定时带确认那都随便你了。
    QingXuJiaZhi
        3
    QingXuJiaZhi  
       Oct 27, 2020
    用什么都一样,这个级别的任务体现不了多少语言优势,用最熟练的语言来做就行。
    v2orz
        4
    v2orz  
       Oct 27, 2020
    shell 应该最容易
    Tumblr
        5
    Tumblr  
       Oct 27, 2020
    PowerShell,非常简单的一个实现了。。。
    w274189159
        6
    w274189159  
       Oct 27, 2020
    shell 不是很简单嘛。ll -Sh 文件大小排序后超过大小的用 find 查找日期时间段的筛出来删除
    cheneydog
        7
    cheneydog  
    OP
       Oct 27, 2020
    @w274189159
    @v2orz
    我咋觉得 shell 写起来好麻烦,一个 if 就要好多行。
    cheneydog
        8
    cheneydog  
    OP
       Oct 27, 2020
    @Tumblr linux 的服务器
    swulling
        9
    swulling  
       Oct 27, 2020 via iPhone
    shell 一行
    Tumblr
        10
    Tumblr  
       Oct 27, 2020
    @cheneydog #7 平台不太重要,PowerShell 是跨平台的。
    hanxiV2EX
        11
    hanxiV2EX  
       Oct 27, 2020 via Android
    find 命令加 rm 命令就行
    MeteorCat
        13
    MeteorCat  
       Oct 27, 2020 via Android
    shell 无脑做就行了,用系统自带不需要什么依赖,干干净净
    cheneydog
        14
    cheneydog  
    OP
       Oct 27, 2020
    @hanxiV2EX 这个是按照天删的,需求是按照最大大小删的,还是有点区别的。
    cheneydog
        15
    cheneydog  
    OP
       Oct 27, 2020
    @MeteorCat 我觉得 shell 的 if else 特别难看,读个配置文件都很麻烦。
    hanxiV2EX
        16
    hanxiV2EX  
       Oct 27, 2020 via Android
    @cheneydog 你标题不是写的按照日期删么
    alixali
        17
    alixali  
       Oct 27, 2020 via iPad
    shell 更清晰,执行不会出问题。python 的话就几行就完事了,加上定时任务;两个风格不一样。
    MeteorCat
        18
    MeteorCat  
       Oct 27, 2020 via Android
    @cheneydog ......我都是看注释说明,注释到位啥都行,难不难看不寒碜又不是找老婆,当然你要好看也可以 python 一把梭,这种没什么大问题,我一般服务器要求都是用最少的东西干最多的活
    cheneydog
        19
    cheneydog  
    OP
       Oct 27, 2020
    @MeteorCat
    @alixali
    @hanxiV2EX
    看了几位的观点,现在已经倾向于 shell 直接写了,如果后续还要加一些:eg. 配置文件指定多个目录 /MGK 表示限定大小 /忽略指定子文件 等一些啰嗦的需求,shell 会不会不好维护?
    MeteorCat
        20
    MeteorCat  
       Oct 27, 2020 via Android
    @cheneydog 参数提取,写成像脚本一样丢个参数执行,和脚本文件一样传参数就行了
    alixali
        21
    alixali  
       Oct 27, 2020 via iPad
    @cheneydog 看你这个是单台机器还是多台,对于多台集群,来说每台的环境都一样那就可以直接读取一台机子上的 shell 文件。单台的话就区分就不是特别的大了。维护的话我还是觉得 shell 方便一点。
    hanxiV2EX
        22
    hanxiV2EX  
       Oct 28, 2020 via Android
    @cheneydog 说到维护,你可以参考 acme.sh
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   920 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 21:32 · PVG 05:32 · LAX 14:32 · JFK 17:32
    ♥ Do have faith in what you're doing.