小编Mar*_*cos的帖子

告诉 fs 现在从已删除的文件中释放空间

有没有办法告诉内核现在返还可用磁盘空间?就像在 /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)

ext4 disk-usage ext3 proc df

77
推荐指数
6
解决办法
25万
查看次数

更改正在运行的进程的环境

怎么可能改变env已经运行的进程中的某些变量,例如通过/proc/PID/environ?那个“文件”是read-only.

需要更改或取消设置长时间运行的批处理作业的 DISPLAY 变量而不终止它。

environment-variables proc

28
推荐指数
2
解决办法
2万
查看次数

按时间顺序排列工作

可能是我放错地方的简单解决方案。如何获得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)

date sort at

11
推荐指数
1
解决办法
2701
查看次数

随时间推移跟踪目录空间的 Linux 工具

是否有任何常见的 Linux 工具可以随时间跟踪磁盘空间,而不仅仅是整个文件系统,但例如,这样我就可以轻松查看历史上哪些目录树膨胀和收缩?发生该问题上似乎保持击球尽管缓存和TMP文件,日常房子清洁0可用空间的服务器日志等等。我已经使用像工具dfdulsof经常和调度at工作超过一定尺寸/类型低时发现旧文件水印被击中等。

最好是 Debian/Ubuntu 软件包。

filesystems disk-usage maintenance df

8
推荐指数
1
解决办法
8859
查看次数

如何在定义的分区边界之外使用“不可用”扇区

在最后一个分区之后的“不可用”区域或定义的分区边界之外的任何地方存储一些隐藏数据的便捷方法是什么?例如,使它看起来像/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)

partition fdisk

6
推荐指数
1
解决办法
1699
查看次数

bash 中的历史列表在新登录时总是被截断为 5000 行

类似于5000线的限制问题时的第一件事.bashrc中export HISTSIZE=10001export 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)

bash prompt command-history readline

5
推荐指数
1
解决办法
932
查看次数

获取“日期”以理解不同语言的时间戳短语

我的网页抓取脚本长期以来一直喜欢使用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)

bash date timestamps locale

5
推荐指数
1
解决办法
2516
查看次数

缩短日志文件中的长行

我保留了一个程序输出的日志文件。问题是有时会在转储很长的 7 位 ascii 数据(编码二进制)行时发生错误,我不想保留。这些行在到达换行符之前可能是 200KB+。

什么可能是一种简短的、可管道化的方式,例如。与sed仅改变超过长250个字符,线条通过保持该行的仅第一80首最后40个字符,可能具有仅仅更换中央的_

sed awk text-processing

5
推荐指数
2
解决办法
2771
查看次数

从日志文件中提取最后一个匹配项直到结束

使用 sed、grep、awk 或 ruby​​,在较大的日志文件中查找字符串的最后一个匹配项并将其后面的每一行(包括)发送到另一个文件的简单方法是什么?

例子:

grep -A222 "_____________" recent/toptrigs.OX.rb.log
Run Code Online (Sandbox Code Playgroud)

是我最近的解决方法,因为 222 行上下文后记应该始终首先命中 EOF,除了我希望它从“ _ __ _ _ ”字符串的最后一个实例开始。它是一个从同一进程同时生成的日志文件(因此我在每个项目循环的末尾手动刷新 STDOUT 和 STDERR,并记住此段)。

grep logs sed regular-expression

3
推荐指数
1
解决办法
3627
查看次数