有没有办法告诉内核现在返还可用磁盘空间?就像在 /proc/ 中写入内容一样?使用 Ubuntu 11.10 和 ext4。
这可能是一个古老而重复的主题。只有当我的编辑器无法保存我打开的源代码文件时才注意到 0 空间后,令我恐惧的是文件夹列表中现在有 0 字节大小,我继续疯狂删除。
我从用户和 root 中删除了 100 MB 的大文件,并且还做了一些硬链接。
就在我这样做之前apt-get clean,/var/cache/apt/archives 中有超过 900MB,现在只有 108KB:
# du
108 /var/cache/apt/archives
Run Code Online (Sandbox Code Playgroud)
一个小时后仍然没有可用空间并且无法保存我在编辑器中打开的宝贵文件,但请注意以下差异:
# sync; df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda4 13915072 13304004 0 100% /
Run Code Online (Sandbox Code Playgroud)
有什么建议?我关闭了一些服务/进程,但不确定如何检查谁可能正在积极占用磁盘空间。
更多信息
# dumpe2fs /dev/sda4
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 884736
Block count: 3534300
Reserved block count: 176715
Free blocks: 422679
Free inodes: 520239
First …Run Code Online (Sandbox Code Playgroud) 怎么可能改变env已经运行的进程中的某些变量,例如通过/proc/PID/environ?那个“文件”是read-only.
需要更改或取消设置长时间运行的批处理作业的 DISPLAY 变量而不终止它。
可能是我放错地方的简单解决方案。如何获得atq按时间顺序排序的输出,以便我可以轻松查看下一个应该运行的人?在man对页面sort没有任何关系的内置识别类似下面的时间戳:
atq
1264 Sat Mar 24 15:03:00 2012 a master
1445 Sat Mar 24 20:28:00 2012 a master
1548 Sun Mar 25 15:09:00 2012 a master
1193 Sat Mar 24 11:03:00 2012 a master
1359 Sat Mar 24 17:13:00 2012 a master
1726 Mon Mar 26 21:24:00 2012 a master
1736 Mon Mar 26 22:04:00 2012 a master
1748 Mon Mar 26 22:46:00 2012 a master
1704 Mon Mar 26 20:19:00 2012 a master …Run Code Online (Sandbox Code Playgroud) 是否有任何常见的 Linux 工具可以随时间跟踪磁盘空间,而不仅仅是整个文件系统,但例如,这样我就可以轻松查看历史上哪些目录树膨胀和收缩?发生该问题上似乎保持击球尽管缓存和TMP文件,日常房子清洁0可用空间的服务器日志等等。我已经使用像工具df,du并lsof经常和调度at工作超过一定尺寸/类型低时发现旧文件水印被击中等。
最好是 Debian/Ubuntu 软件包。
在最后一个分区之后的“不可用”区域或定义的分区边界之外的任何地方存储一些隐藏数据的便捷方法是什么?例如,使它看起来像/dev/___我的用户空间程序的 I/O 就绪。
假设我不在乎分区程序或引导加载程序是否意识到那里可能存在重要的东西并继续执行;我会根据需要进行结构完整性检查并重新创建数据。
cfdisk (util-linux 2.19.1)
Disk Drive: /dev/sda
Size: 160041885696 bytes, 160.0 GB
Heads: 255 Sectors per Track: 63 Cylinders: 19457
Name Flags Part Type FS Type [Label] Size (MB)
--------------------------------------------------------------------------------
sda1 Primary vfat [ACER] 25827.38
sda2 Primary ntfs 90033.92
Unusable 13193.35
sda3 Primary ext4 16508.14
sda4 Boot Primary ext4 14476.50
Unusable 2.62 *
Run Code Online (Sandbox Code Playgroud) 类似于5000线的限制问题时的第一件事.bashrc中我
export HISTSIZE=10001
和
export HISTFILESIZE=$HISTSIZE
我的用户没有~/.inputrc文件,并且系统范围的/etc/inputrc文件(Ubuntu 11.10 的默认值未更改)没有任何history-size定义。readline手册页也没有显示任何默认值,除非暗示(0)或无限制。
然而,每次我登录时,我的提示都显示我只有 5000 个,尽管在上次会话期间添加了更多独特的命令行,或者在history -w没有注销的情况下保存。
这个限制在哪里设置,我该如何覆盖它?
我的提示和来自~/.bashrc或其来源的文件的其他可能有趣的设置:
PS1='\u@\h\w \d,\t\$ (\!) '
HISTCONTROL=erasedups:ignorespace
HISTSIZE=10001
export HISTIGNORE="[ ]*:&:bg:fg:exit"
export HISTFILESIZE=$HISTSIZE
export PROMPT_COMMAND="history -a"
shopt -s histappend
HISTTIMEFORMAT="%Y-%m-%d_%H-%M-%S "
shopt -s histreedit
Run Code Online (Sandbox Code Playgroud)
示例提示:
master@quant~/dev Mon Feb 27,10:08:29$ (5721)
Run Code Online (Sandbox Code Playgroud)
回答一些评论:
# to unpollute from other concurrent sessions, which previously already truncated file to 5000 at login:
master@ventana~ Mon …Run Code Online (Sandbox Code Playgroud) 我的网页抓取脚本长期以来一直喜欢使用date -d人类格式的时间和日期戳,例如“1999 年 3 月 11 日”,并通过 -s 参数转换为我需要的任何其他格式。
我怎么可能把它理解印在其他语言环境日期一样27 Kwi, 13:54在波兰?如果需要,我可以人为地预先/附加年份(2012)。
我检查了我的env并尝试了以下方法,但没有运气:
LOCALE=PL date -d "30 Kwi, 17:02"
LANGUAGE=pl_PL:pl date -d "30 Kwi, 17:02"
LC_CTYPE=pl_PL:pl date -d "30 Kwi, 17:02"
LANG=pl_PL:pl date -d "30 Kwi, 17:02"
LC_COLLATE=pl_PL:pl date -d "30 Kwi, 17:02"
LC_MESSAGES=pl_PL:pl date -d "30 Kwi, 17:02"
date: invalid date `30 Kwi, 17:02'
Run Code Online (Sandbox Code Playgroud)
在我安装的系统中,
LANGUAGE=en_US:en
LC_CTYPE=en_US.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_COLLATE=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud) 我保留了一个程序输出的日志文件。问题是有时会在转储很长的 7 位 ascii 数据(编码二进制)行时发生错误,我不想保留。这些行在到达换行符之前可能是 200KB+。
什么可能是一种简短的、可管道化的方式,例如。与sed仅改变超过长250个字符,线条通过保持该行的仅第一80首最后40个字符,可能具有仅仅更换中央的_?
使用 sed、grep、awk 或 ruby,在较大的日志文件中查找字符串的最后一个匹配项并将其后面的每一行(包括)发送到另一个文件的简单方法是什么?
例子:
grep -A222 "_____________" recent/toptrigs.OX.rb.log
Run Code Online (Sandbox Code Playgroud)
是我最近的解决方法,因为 222 行上下文后记应该始终首先命中 EOF,除了我希望它从“ _ __ _ _ ”字符串的最后一个实例开始。它是一个从同一进程同时生成的日志文件(因此我在每个项目循环的末尾手动刷新 STDOUT 和 STDERR,并记住此段)。