求高手给写个简单的群晖脚本,群晖就是基于linux的吧?

  • j
    jimmystar
    指定 backup盘符下video文件夹下,2个月前的文件自动删除。

    我会设置计划任务,每周运行一次。

    感谢!!
  • x
    xf22cn
    如果是linux倒是简单:

    !/bin/bash
    rm -rf 文件夹路径/*

    复制上面2句话,把文件夹路径补全,然后另存为 del.sh,加载即可
    但是有2个问题注意下
    1.不能在win下使用txt文本新建这个脚本,需要用UltraEdit之类的文本编辑器来新建这个脚本文件
    2.一定要弄清楚文件夹所在路径
  • t
    tmzg0000
    你如何判断2个月前的文件?
  • w
    waitinghope
    群晖可以自动备份。
  • x
    xf22cn
    要判断2个月之前的就要用 find 命令了,较复杂一些
  • j
    jimmystar
    感谢,我要删除2个月前的文件,这样文件不会不断增加,保留2个月内的文件就可以了
  • j
    jimmystar
    不是要备份,是我要限制文件数量
  • e
    ebok
    1. #!/bin/bash
    2. file_path=/youpath #目录路径
    3. find "$file_path" -mtime +60 -delete
    复制代码
  • a
    ackoly
    没毛病,这个方法最简单。
    我平时大多用的是ctime,今天刚好对比下,好像没啥区别。
    -atime n
    File was last accessed n*24 hours ago. When find figures out how many 24-hour periods ago the file was last accessed, any fractional part is ignored, so to match -atime +1, a file has to have been accessed at least two days ago.

    -ctime n
    File's status was last changed n*24 hours ago. See the comments for -atime to understand how rounding affects the interpretation of file status change times.

    -mtime n
    File's data was last modified n*24 hours ago. See the comments for -atime to understand how rounding affects the interpretation of file modification times.
  • j
    jimmystar
    感谢!明天试试!
  • o
    oceanstar
    群晖自带功能就能搞定啊,设定下保留份数就好了
  • j
    jimmystar
    在哪里??就是普通的文件夹里,不是备份的文件夹设置备份数量大小一类的
  • j
    jimmystar
    运行不出来,删除是用-delet

    不是rm -rf吗?
  • w
    wsfdgyc
    find /backup/vedio/* -mtime +60 -name "*.*" -exec rm -rf {} \;
  • g
    guanyujia5444
    我的想法和14楼的一样。

    建议不要用rm -rf 文件夹路径的方式,不小心容易出问题
  • z
    zhu1992
    rm rf 删库到跑路
  • 腾奔睿酷
    1. now_time=$(date +%s)
    2. #当前时间
    3. cam_dir=/mnt/sdm1/Cam
    4. #删除的目录
    5. day_ago_15=$(date -d "@$(expr $now_time - $ago_day)" +%Y-%m-%d' '%H:%M:%S)
    6. #获取15天前的日期
    7. day_ago_160=$(date -d "@$(expr $now_time - 13824000)" +%Y-%m-%d' '%H:%M:%S)
    8. #获取160天的日期
    9. find $cam_dir/* -newermt "$day_ago_160" ! -newermt "$day_ago_15" -exec rm {} \;
    10. #删除15天前~160天之内的文件
    复制代码


    这是我在openwrt用的脚本片段,群晖不一定能用,find命令要装加强版另外群晖后台运行定时任务还要装cron
    定时任务是 0 0 */7 * *
    每七天的0时0分执行
  • j
    jimmystar
    谢,find命令要装加强版是什么意思?
  • l
    lqzhgood
    1. find /root/logs/ -type f -mtime +7 -exec rm -f {} \;
    复制代码



    +7 代表 7天前~ 自行修改
  • k
    ko74110
    自带的备份能选择时间和数量的
  • j
    jimmystar
    不是备份,就是正常文件夹里的文件
  • j
    jimmystar
    这个可以!感谢!!
  • U
    UncleX3
    cd 你的路径
    # 7是7天 按需调整
    find . -maxdepth 1 -mtime +7 -type f -delete
  • 腾奔睿酷
    你首先要解决群晖后台root权限问题,
    其次是需要安装ipkg模块
    然后执行ipkg update
    ipkg install cron

    ipkg模块的安装可以在第三方套件安装也可以用后台安装,网上找一下