- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
如果缓存目录变得太大,我每天都会通过 CRON 编写一个小脚本来清理我的 linux 上的空间。由于我在 bash 脚本方面真的很新手,我需要你们 linux 专家的一点帮助。
这基本上是逻辑(伪代码)
if ( Drive Space Left < 5GB )
{
change directory to '/home/user/lotsa_cache_files/'
if ( current working directory = '/home/user/lotsa_cache_files/')
{
delete files in /home/user/lotsa_cache_files/
}
}
我计划从“/dev/sda5”命令中获取剩余的驱动器空间。如果将以下值返回给我以供您引用:
Filesystem 1K-blocks Used Available Use% Mounted on<br>
/dev/sda5 225981844 202987200 11330252 95% /
因此可能需要一些正则表达式才能从返回值中获取“11330252”
'if (current working directory =/home/user/lotsa_cache_files/)'部分只是我内心偏执狂的一种防御机制。在我继续执行删除命令之前,我想确保我确实在“/home/user/lotsa_cache_files/”中,如果由于某种原因当前工作目录不存在,该命令可能具有破坏性。
文件的删除将使用下面的命令而不是通常的 rm -f 来完成:
find . -name "*" -print | xargs rm
这是由于 linux 系统固有的无法在目录包含太多文件的情况下“管理”目录,正如我过去了解到的那样。
最佳答案
只是另一个提议(代码内的注释):
FILESYSTEM=/dev/sda1 # or whatever filesystem to monitor
CAPACITY=95 # delete if FS is over 95% of usage
CACHEDIR=/home/user/lotsa_cache_files/
# Proceed if filesystem capacity is over than the value of CAPACITY (using df POSIX syntax)
# using [ instead of [[ for better error handling.
if [ $(df -P $FILESYSTEM | awk '{ gsub("%",""); capacity = $5 }; END { print capacity }') -gt $CAPACITY ]
then
# lets do some secure removal (if $CACHEDIR is empty or is not a directory find will exit
# with error which is quite safe for missruns.):
find "$CACHEDIR" --maxdepth 1 --type f -exec rm -f {} \;
# remove "maxdepth and type" if you want to do a recursive removal of files and dirs
find "$CACHEDIR" -exec rm -f {} \;
fi
从 crontab 调用脚本进行定时清理
关于linux - 磁盘满时删除文件的shell脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5908919/
我编写了一个函数来包含两个 DateTime 之间的小时列表。 但最后它看起来并不是很容易阅读,这让我想对它进行单元测试,即使我正在从事的项目根本没有进行单元测试。 所以我的问题是,是否有一种更易读或
我一定是漏掉了什么,因为我还没有在网上找到这个非常基本的问题的答案。我正在使用能够容纳三个 int 的缓冲 channel 值。 然后我使用三个 goroutine 来填充它,一旦缓冲 channel
我发现如果一个矩阵(几乎)满了,那么将它存储在稀疏中会导致(更多)更多的计算时间。 虽然以稀疏形式存储完整矩阵是微不足道的,但我只想知道这一事实背后的原因。 我的推测是稀疏索引读取将是计算时间的主要贡
root@root:~# sudo du -ch --max-depth=1 --exclude=/home/ / du: cannot access ‘/sys/kernel/slab/L2TP/I
基本上我想创建一个 UIProgressView 在 3 秒内从 0.0(空)到 1.0(满)。有人能指出我在 swift 中使用 NSTimer 与 UIProgressView 的正确方向吗? 最
我是一名优秀的程序员,十分优秀!