/usr/ucb/ps 输出重定向产生截断行
/usr/ucb/ps output redirection yield truncated line
/usr/ucb/ps 屏幕上的命令输出显示一长串环境变量及其值,但将输出重定向到文件时会产生截断的行。
这个怎么解释?
bash-3.2$ /usr/ucb/ps -auxwee 6543 >/var/tmp/env-var 2>&1
bash-3.2$ cat /var/tmp/env-var
USER PID %CPU %MEM SZ RSS TT S START TIME COMMAND
alcrprun 6543 0.0 0.0 8752 5992 ? S 19:35:01 0:15 /usr/bin/python -Bu ./bin/dpfoservice.py CFG_HOME=/opt/apps/algo/algoS
bash-3.2$ /usr/ucb/ps -auxwee 6543
USER PID %CPU %MEM SZ RSS TT S START TIME COMMAND
alcrprun 6543 0.0 0.0 8752 5992 ? S 19:35:01 0:15 /usr/bin/python -Bu ./bin/dpfoservice.py CFG_HOME=/opt/apps/algo/algoSuite.current.solaris.alcr/cfg RISK_HOME=/opt/apps/algo/algoSuite.current.solaris.alcr/risk++ ALGO_HOME=/opt/apps/algo/algoSuite.current.solaris.alcr ARE_HOME=/opt/apps/algo/algoSuite.current.solaris.alcr/aggregation/are
...
...
它将 132 宽的输出打印到文件中,因为这就是 -w
参数的作用。每 the ps.1b
man page:
-w
Uses a wide output format (132 columns rather than 80); if repeated, that is, -ww
, use arbitrarily wide output. This information
is used to decide how much of long commands to print.
如果您想要任意宽度的输出,请使用 -ww
而不是 -w
。
仅使用 -w
选项且输出是终端 window 时,/usr/ucb/ps
似乎检测到我的 Solaris 11 副本上的终端宽度 - 更改window 修改仅使用 -w
选项发出的输出量。该行为的文档可能隐藏在 Solaris 手册页的某处,给出 Solaris 文档的历史性质。
# /usr/ucb/ps -aux | head
USER PID %CPU %MEM SZ RSS TT S START TIME COMMAND
orabudge 13285 4.1 51.18413180884116344 ? O 08:56:30 0:22 oraclebudget (LOCA
orabudge 11998 3.4 51.18413552884119456 ? O 08:51:53 1:49 oraclebudget (LOCA
root 732 3.1 0.0 0 0 ? S Feb 04 326:27 zpool-budgetdb_dat
orabudge 12030 2.8 51.18413296884116648 ? S 08:52:02 2:04 ora_p004_budget
orabudge 12034 2.8 51.18413284084116504 ? S 08:52:02 2:04 ora_p006_budget
orabudge 12032 2.8 51.18413290484116568 ? S 08:52:02 2:04 ora_p005_budget
orabudge 12036 2.7 51.18413296884117176 ? S 08:52:02 2:02 ora_p007_budget
orabudge 21339 1.0 51.18414346484127680 ? S 07:18:27 4:24 oraclebudget (LOCA
orabudge 4347 0.9 51.18414084084125256 ? S 08:19:23 1:10 oraclebudget (LOCA
[root@budgetdb:ravi]#
USER – 启动进程的用户。
PID – 系统分配的进程ID号。
%CPU – 进程使用的 CPU 时间的百分比。
%MEM – 正在使用的系统中总 RAM 的百分比
进程(它不会加起来达到 100%,因为一些 RAM 是共享的
通过几个过程)。
SZ – 分配给的非共享虚拟内存量(以千字节为单位)
过程。它不包括程序的文本大小
通常共享。
RSS – 进程的驻留集大小。这是基础
%MEM 是进程使用的 RAM 量。
TT – "teletype" 用户登录。
S – 进程的状态。
S – 睡觉
O – 使用 cpu(在 CPU 上)或 运行
R – 运行 并等待 CPU 空闲
Z– 终止但未死亡(僵尸)
P – 等待页面输入
D – 等待磁盘 I/ O
检查磁盘性能和内存使用情况(如果很多)
P 或 D 状态出现。这可能表示两个子系统都过载。
START – 进程启动时间
TIME – 到目前为止进程使用的总时间CPU
COMMAND – 正在执行的命令
/usr/ucb/ps 屏幕上的命令输出显示一长串环境变量及其值,但将输出重定向到文件时会产生截断的行。
这个怎么解释?
bash-3.2$ /usr/ucb/ps -auxwee 6543 >/var/tmp/env-var 2>&1
bash-3.2$ cat /var/tmp/env-var
USER PID %CPU %MEM SZ RSS TT S START TIME COMMAND
alcrprun 6543 0.0 0.0 8752 5992 ? S 19:35:01 0:15 /usr/bin/python -Bu ./bin/dpfoservice.py CFG_HOME=/opt/apps/algo/algoS
bash-3.2$ /usr/ucb/ps -auxwee 6543
USER PID %CPU %MEM SZ RSS TT S START TIME COMMAND
alcrprun 6543 0.0 0.0 8752 5992 ? S 19:35:01 0:15 /usr/bin/python -Bu ./bin/dpfoservice.py CFG_HOME=/opt/apps/algo/algoSuite.current.solaris.alcr/cfg RISK_HOME=/opt/apps/algo/algoSuite.current.solaris.alcr/risk++ ALGO_HOME=/opt/apps/algo/algoSuite.current.solaris.alcr ARE_HOME=/opt/apps/algo/algoSuite.current.solaris.alcr/aggregation/are
...
...
它将 132 宽的输出打印到文件中,因为这就是 -w
参数的作用。每 the ps.1b
man page:
-w
Uses a wide output format (132 columns rather than 80); if repeated, that is,
-ww
, use arbitrarily wide output. This information is used to decide how much of long commands to print.
如果您想要任意宽度的输出,请使用 -ww
而不是 -w
。
仅使用 -w
选项且输出是终端 window 时,/usr/ucb/ps
似乎检测到我的 Solaris 11 副本上的终端宽度 - 更改window 修改仅使用 -w
选项发出的输出量。该行为的文档可能隐藏在 Solaris 手册页的某处,给出 Solaris 文档的历史性质。
# /usr/ucb/ps -aux | head
USER PID %CPU %MEM SZ RSS TT S START TIME COMMAND orabudge 13285 4.1 51.18413180884116344 ? O 08:56:30 0:22 oraclebudget (LOCA orabudge 11998 3.4 51.18413552884119456 ? O 08:51:53 1:49 oraclebudget (LOCA root 732 3.1 0.0 0 0 ? S Feb 04 326:27 zpool-budgetdb_dat orabudge 12030 2.8 51.18413296884116648 ? S 08:52:02 2:04 ora_p004_budget orabudge 12034 2.8 51.18413284084116504 ? S 08:52:02 2:04 ora_p006_budget orabudge 12032 2.8 51.18413290484116568 ? S 08:52:02 2:04 ora_p005_budget orabudge 12036 2.7 51.18413296884117176 ? S 08:52:02 2:02 ora_p007_budget orabudge 21339 1.0 51.18414346484127680 ? S 07:18:27 4:24 oraclebudget (LOCA orabudge 4347 0.9 51.18414084084125256 ? S 08:19:23 1:10 oraclebudget (LOCA [root@budgetdb:ravi]#
USER – 启动进程的用户。
PID – 系统分配的进程ID号。
%CPU – 进程使用的 CPU 时间的百分比。
%MEM – 正在使用的系统中总 RAM 的百分比 进程(它不会加起来达到 100%,因为一些 RAM 是共享的 通过几个过程)。
SZ – 分配给的非共享虚拟内存量(以千字节为单位) 过程。它不包括程序的文本大小 通常共享。
RSS – 进程的驻留集大小。这是基础 %MEM 是进程使用的 RAM 量。
TT – "teletype" 用户登录。
S – 进程的状态。
S – 睡觉
O – 使用 cpu(在 CPU 上)或 运行
R – 运行 并等待 CPU 空闲
Z– 终止但未死亡(僵尸)
P – 等待页面输入
D – 等待磁盘 I/ O
检查磁盘性能和内存使用情况(如果很多) P 或 D 状态出现。这可能表示两个子系统都过载。
START – 进程启动时间
TIME – 到目前为止进程使用的总时间CPU
COMMAND – 正在执行的命令