首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    du查询文件夹占用空间,自动删除超过N天的文件

    查找占用大的文件,删除掉,如日志文件 场景 收到系统磁盘报警了,需要在快速找出哪些文件占用过大,及时清理,一般都是日志占用,可以做成定时任务,超过多少天的自动清理 查找占用空间最大的文件 # 查找 /var...下最大的,排前10的文件 $ du -a /var | sort -n -r | head -n 10 删除超过N天的文件 比如:clean_expired_logs.sh # 清理 /path/log...目录超过10天的 *.log 文件 $ find /path/log -name "*.log" -type f -mtime +10 | xargs rm -rf 定时任务 # 编辑定时任务,一行代表一个定时任务...# "30 05 * * *" 代表每天的 05:30:00 分钟执行任务 $ crontab -e 30 05 * * * sh /path/clean_expired_logs.sh # 查看有哪些定时任务

    92530

    如何删除给定单向链表的倒数第N个元素

    如何删除给定单向链表的倒数第N个元素? 先分析下有哪些关键词: 1. 单向链表,那也就是我们只能单向遍历; 2....倒数第N个元素,只能先遍历到尾部,才知道倒数第N个元素是什么,但问题又出现了,是单向链表,不能反向遍历,那该如何解决呢? 3....删除,要想删除某一元素,是需要知道这个指定元素的前一元素才行,那我们其实要找到的倒数N+1个元素....以如下队列为例,如果要删除倒数第2个元素,就要找到倒数第3个元素,也就是倒数第N+1个元素,那改如何做呢? 首先一定需要一个指针遍历到队列尾部的,那怎么记录这个指针已经遍历过的元素呢?...两个指针按照同样的速度同时移动,当快指针到达结尾的时候,慢指针也就到达了倒数第N+1个元素的位置. 再细分下,如果要删除的目标元素正好和链表长度相同呢?

    99310

    du查询文件夹占用空间,自动删除超过N天的文件「建议收藏」

    查找占用大的文件,删除掉,如日志文件 场景 收到系统磁盘报警了,需要在快速找出哪些文件占用过大,及时清理,一般都是日志占用,可以做成定时任务,超过多少天的自动清理 查找占用空间最大的文件 # 查找 /var...下最大的,排前10的文件 $ du -a /var | sort -n -r | head -n 10 删除超过N天的文件 比如:clean_expired_logs.sh # 清理 /path/log...目录超过10天的 *.log 文件 $ find /path/log -name "*.log" -type f -mtime +10 | xargs rm -rf 定时任务 # 编辑定时任务,一行代表一个定时任务...# "30 05 * * *" 代表每天的 05:30:00 分钟执行任务 $ crontab -e 30 05 * * * sh /path/clean_expired_logs.sh # 查看有哪些定时任务

    61520

    在ArrayList的循环中删除元素,会不会出现问题?

    在 ArrayList 的循环中删除元素,会不会出现问题?我开始觉得应该会有什么问题吧,但是不知道问题会在哪里。在经历了一番测试和查阅之后,发现这个“小”问题并不简单!...删除这种元素时,方法一在删除重复但不连续的元素时是正常的,但在删除重复且连续的元素时,会出现删除不完全的问题,这种删除方式也是用到了 ArrayList 中的 remove() 方法。...在下一次循环中 i = 2,第二个 “bb” 元素就被遗漏了,所以这种删除方法在删除连续重复元素时会有问题。 ?...,发散一下思维,Python 中的列表删除会不会也有这样的问题呢,我抱着好奇试了试,发现下面的方法一也同样存在不能删除连续重复元素的问题,方法二则是报列表下标越界的异常,测试代码如下,这里我只测试了单线程环境...,没想到背后却有这么多的知识,真是感觉自己要学的还很多,遇到方法细节的问题,我觉得直接看源码是最好的解决方法,另外我觉得在后面的版本的 JDK 中,可以增加一个在循环中删除连续元素的方法嘛,不然这里对于没有发现这个问题的人真是个坑

    3.6K20

    记一次使用Spark算子之用top()求Top N遇到的问题!

    需求:使用spark统计词频,并求出现次数最多的10个词以及出现次数 问题:用Spark算子top(),求top N的时候结果不准确 我们用一首被初中生唱收费的《That girl》来做测试: ?...注意: 这里问题来了,对比一下第二步和第三步的输出发现,得到的top 10结果并不是倒序排序后得到的前十个词!!!...mapRDDs.reduce { (queue1, queue2) => queue1 ++= queue2 queue1 }.toArray.sorted(ord) } } } 问题分析...top()的时候会对我们第二次输出的结果进行分区,默认为2个分区,所以看到第三步的结果应该是每个分区的top(5)(这里我想的对不对,还有待商榷); 其次top()会对我之前sortBy()的结果按照...key重新排序,所以导致了我们Top N的结果不准确; 解决方案: 方案一:指定top()的排序方法,这里我们直接根据value排序:sortBy(x => x._2,false).top(10)(Ordering.by

    1.8K30

    记一次Linux下文件删除但空间不释放问题的解决

    问题现象 今天早上,收到运维监控系统的告警,说web02这台主机的根分区剩余空间不足20%,于是马上连上服务器查看。.../*命令获知是/var/lib/AnyBackup/logs/下的日志文件过大导致的异常,前几日的文件都正常,但是前天日志文件有2GB,昨天的日志竟高达17GB,鉴于是生产系统,为保证平台稳定性,在确认可以删除后...,空间长久不释放的问题。...联想到出问题的是AnyBackupClient的日志文件,而AnyBackupClient这样的备份系统几乎在我们的生产环境中“永不停歇”的运行,如果进程一直在跑,就会不断的往其日志写入数据(如果有),...即便将文件的数据部分删除,文件的指针由于被进程锁定,依旧存在于文件系统元数据(meta-data)中而并未被删除,因此Linux内核认为文件并未被删除,通过df命令查询空间并未释放也就是情理之中的事情了

    4K20

    【C++】小心使用文件读写模式:回车(r) 换行(n)问题的一次纠结经历

    将该文件上传到服务器,再用程序B将文件从服务器上下载下来计算MD5值,神奇的发现两次计算的MD5值不一样,文件被谁改了??...4.查看文件F,行结尾是\r\n,而我记得当初生成文件的时候是以\n作为换行符的,纠结一番后想起来了文件读写的模式,只记得是文本与二进制的区别,没有想起来换行符的问题。...然而当从服务器上下载下来时,文件是以\r\n作为行结尾的,直接计算MD5会导致值不一样。而将下载下来的文件保存时,由于仍然使用的文本模式,将\r\n变成了\r\r\n,导致了当初匪夷所思的结果。...对于二进制数据,文本格式会引起问题,因为double值中间的字节可能与换行符的ASCII码有相同的位模式。另外,在文件末尾的检测方式也有区别。因此以二进制格式保存数据时,应使用二进制文件模式。”...另外再说一点题外的,不用语言的字符串类型编码可能会不同,例如JavaScript里是UTF-16,而C++默认的是ANSI,下载下来同一个文件计算MD5值的话可能会有问题。

    3.3K70

    ArrayList在foreach删除倒数第二个元素不抛并发修改异常的问题

    循环删除元素的情况。...接下来先就这个代码做几个实验,把要删除的元素的索引号依次从1到5都试一遍,发现,除了删除4之外,删除其他元素都会抛异常。...接着把list的元素个数增加到7试试,这时候可以发现规律是,只有删除倒数第二个元素的时候不会抛出异常,删除其他元素都会抛出异常。 好吧,规律知道了,可以从代码的角度来揭开谜底了。...是指Iterator现在期望这个list被修改的次数是多少次。...破除迷信,foreach循环遍历的时候不能删除元素不是绝对,倒数第二个元素是可以安全删除的~~(当然以上的思路都是建立在list没有被多线程共享的情况下)

    1.8K30

    K8S:分享一次“乌龙问题”(人为导致的无法正常删除命名空间)

    问题背景 背景是这样的,我有一套测试用的K8S集群,发现无法正常删除命名空间了,一直处于Terminating状态,强制删除也不行。...于是,再次手动创建了一个名为“test-b”的命名空间,同样也是不能正常删除。于是,展开了排查。不过,查到最后,发现是个毫无技术含量的“乌龙问题”。结果不重要,重要的是我想把这个过程分享一下。...继续检查API Server的日志看看是否有错误或异常 # 获取API Server Pod的名称: [root@k8s-b-master ~]# kubectl get pods -n kube-system...从输出日志来看,问题似乎与metrics.k8s.io/v1beta1有关,这个API被用于收集Kubernetes集群的度量数据。...如果 Metrics Server 组件无法正常运行,可能会导致其他组件出现问题,包括删除命名空间时提示错误。

    1.5K00

    查找(二)简单清晰的B树、Trie树具体解释

    B树中的每一个结点依据实际情况能够包括大量的keyword信息和分支(当然是不能超过磁盘块的大小,依据磁盘驱动(diskdrives)的不同,一般块的大小在1k~4k左右);这样树的深度减少了,这就意味着查找一个元素仅仅要非常少结点从外存磁盘中读入内存...还是这句话,keyword数小了(小于2个)就合并,大了(超过4个)就分裂)为例,依次删除H,T,R,E。...4、最后一步删除E, 删除后会导致非常多问题,由于E所在的结点数目刚好达标,刚好满足最小元素个数(ceil(5/2)-1=2),而相邻的兄弟结点也是相同的情况,删除一个元素都不能满足条件,所以须要该节点与某相邻兄弟结点进行合并操作...如果这个问题结点的相邻兄弟比較丰满,则可以向父结点借一个元素。...数据库索引採用B+树的主要原因是 B树在提高了磁盘IO性能的同一时候并没有解决元素遍历的效率低下的问题。正是为了解决问题,B+树应运而生。 B+树仅仅要遍历叶子节点就能够实现整棵树的遍历。

    1.1K10

    2017年对口计算机上机考试,2017年计算机二级VB上机考试答题攻略

    3.求素数、极值 求素数基本思想:素数的意义;实现方法:双重循环,外循环判断每一个数,内循环判断能否被某数整除。 求极值基本思想:设第一个数为极值数,然后进入循环与其比较,超过则替换。...5.数列的插入、删除和重组 (1)插入:对原数组进行扩充,循环查找插入位置(逐个比较),找到后,从后向前依次移动每一个数字,直到该位置,然后将数据插入。...(2)删除:与插入类似,也是先查找位置,找到后,将该位置以后的每一个元素依次前移。 (3)重组:采用排序或移动元素的思想,具体情况具体分析,如奇偶数的分开等。...(2)递推(迭代):将一个复杂的计算过程转化为简单过程的重复,通常也是利用循环实现,这一次计算的结果作为下一次的变量继续进行计算,直到满足指定的条件,如猴子吃桃问题、计算近似数问题、数列计算问题等。...递归描述有两个关键要素:一是递归结束的条件;二是迭代公式(此次的结果能够作为下一次的变量)。 递归过程的分析:递推n次直到结束条件满足,回归n次得到运算结果。 典型递归:阶乘的计算1!=1,n!

    51310

    数据结构知识点

    3、动态顺序表中,插入需要检查是否需要扩容 4、数据在内存中是连续的,可以支持随机访问 1、顺序表插入删除: a、顺序表插入元素,需要移动元素,这里需要把[i, n - 1]区间的元素全部向后移动一次...,故移动的次数为n - 1 - i + 1 b、顺序表删除元素,需要移动元素,这里需要把[i + 1, n - 1]区间的元素全部向前移动一次,故移动的次数为 n - i - 1 二、链表...有可能小于front,减完之后可能是负数,所以需要+N,此时结果刚好是队列中有效元素个数,但如果rear大于front,减完之后就是有效元素个数了,再加N后有效长度会超过N,故需要%N。...4、删除操作需要执行向下调整算法 5、插入操作需要执行向上调整算法 向下调整的基本操作: 1、建堆时,从每一个非叶子节点开始,倒着一直到根节点,都要执行一次向下调整算法。...3、n个元素中排列出前k大的元素问题,对于此类问题,可以建立一个小根堆,依次读入n个元素并调整,并在堆的规模达到k+1时,剔除掉第1个元素,剩下k个较大元素,保持堆的规模不超过k,一直循环即可得到最终的结果

    24510

    二元最近的共同祖先问题(O(n) time 而且,只有一次遍历,O(1) Space (它不考虑函数调用栈空间))

    问题: 找到两个节点的二叉树的最近的共同祖先。...首先可以参考这个博客http://blog.csdn.net/cxllyg/article/details/7635992 ,写的比較具体,包含了节点包含父指针和不包含父指针的情况,还介绍了经典的Tarjan...Tarjan算法非常精妙,可是使用了并查集,须要额外O(n)的存储空间。 上面博客中给的第三个方法也是须要记录根到节点的路径,须要O(log n)空间,当然考虑到普通情况下我们遍历树都是递归的方式。...所以本身方法调用栈就是O(log n)空间占用率。 可是这是对于平衡的二叉树而言的。在最差情况下空间占用率还是O(n)。 所以。这里我给的算法不须要记录根到节点的路径。并且只遍历树一遍就能够完毕。...这时设置两个节点的近期公共祖先为p 2. 继续深度遍历,找另外一个节点q, 如果这时找到q, 那么二者近期祖先就是p. 3. 否则,回退到上一层,这时二者的近期公共祖先也对应改成了p的父节点。

    31010

    从源码看redis的list结构

    内容(总共 4字节+contents) 也就是说,每个节点,至少包含40个字节的元数据内容,还有其它的一些内部为了计算的分配,那么如果只往内部 插入 10个字符的string,显然元素据的空间超过了存储的内容...,这显得有些浪费 ziplist redis使用ziplist来解决存储小量数据 常规双向链表 的问题。...ziplist使用变长的编码,如果存储小的内容,偏移也更小 但是这种方式也带来了问题 每次插入元素需要将后面的元素后移,同时插入意味着需要重新分配内存 删除元素的时候,所有元素要往前移 这意味着ziplist...N] 通过 list-max-ziplist-entries 来控制每个节点的 ziplist的数目,超过限定则新建一个 quicklistnode。...中删除元素,需要把多个ziplist进行合并 所有的插入意味着需要重新分配ziplist 在头部插入需要把原有的ziplist实体后移 quicklist的结构如下 Code.SLICE.source(

    17610
    领券