标签: shell

远程主机上的 BASH shell 会话日志记录

将 BASH shell 会话记录到主机上的文件的最佳方法是什么?

首选输出格式等同于 PuTTY 的“可打印输出”日志设置,用户查看时包括输入和 ncurses 控制字符数据。

ssh shell remote logging

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

让 shell 脚本在 CentOS 上作为守护进程运行?

编辑:由于某种原因,我的帖子的一半被截断了,不知道发生了什么。我会尽快更新,并将在顶部发布它已更新。

编辑:我再次更新了帖子,对于不完整的问题很抱歉。

编辑(东部标准时间 10/10/2011 晚上 8:55):我像史蒂文建议的那样更新了 /srv/rhodecode/start.sh,但仍然不高兴。它继续像这样挂起:

[lpeabody@vcs rhodecode]$ sudo /etc/init.d/rhodecode-server start
Starting rhodecode-server:
Run Code Online (Sandbox Code Playgroud)

我已经更新了下面的脚本以显示更改。


我一生中从未编写过 shell 或 bash 脚本。我正在尝试在 CentOS 上安装 RhodeCode,并且有适用于 Debian 和 Gentoo 的初始化脚本,但不适用于 RedHat/CentOS,这对我来说很疯狂。所以我需要写一个,因为我们的服务器环境仅限于运行 CentOS 5。该项目的源代码可以在这里的Bitbucket找到

这个想法是用 Celery 和 RabbitMQ 运行 RhodeCode。它都是用 Python 编写的,我使用 virtualenv 在它自己的单独虚拟容器中拥有环境。我在这里得到了 shell 脚本的想法。

我创建了一个名为 rhodecode 的系统用户,并创建了目录 /var/run/rhodecode 并且它归 rhodecode 所有。我还创建了生产.ini 所在的/var/www/rhodecode 以及/srv/rhodecode/start.sh,所有这些都归rhodecode 所有。

权限:

[lpeabody@vcs run]$ ll -a /var/run/rhodecode
total 12
drwxr-xr-x  2 rhodecode rhodecode 4096 Oct 10 15:57 .
drwxr-xr-x 21 root      root      4096 …
Run Code Online (Sandbox Code Playgroud)

scripting startup shell centos init.d

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

从 ZSH 自动完成中排除环境变量

快速示例:

~ $ wor<TAB>
~ $ WORDCHARS=                                                                                                                                                                                                             
WORDCHARS    WORKON_HOME  WORKON_HOME  workon 
Run Code Online (Sandbox Code Playgroud)

workon是所需的命令。有没有办法从 ZSH 中的自动完成中排除环境变量?

shell zsh environment-variables

7
推荐指数
1
解决办法
1009
查看次数

ulimit 是由 shell、用户还是组合继承的?

当一个进程产生一个子shell时,它是如何ulimit继承的?

是按用户、按外壳还是按组合?

具体来说,这是在某些托管 AIX 设备上的 HP 服务器自动化作业由于软硬件之间的交互而失败的情况下发现的ulimits。简而言之,代理(root在处理来自 SA 的命令时作为子外壳运行并生成子外壳)无法处理某些作业,因为其子外壳正在访问ulimit.

增加ulimit解决了问题,但如何ulimit继承以及是否需要提高软限制或硬限制(或两者)的问题仍然悬而未决。

这个问题的正确答案是什么?它可能是特定于 AIX 的,也可能是跨 Unix/Linux 变体的——以哪个更好。

unix shell ulimit hp-server-automation

7
推荐指数
1
解决办法
3233
查看次数

允许 www-data 执行 shell 脚本

我在 Ngnix 服务器上有一个名为 boot.sh 的 shell 脚本

我试图通过 PHP 调用它,但我认为我没有权限。

如何授予 www-data 运行 boot.sh 的权限 - 并且只允许 boot.sh

当尝试sudo chownsudo chgrp我得到Operation Not Permitted

linux permissions nginx shell

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

Linux 语言环境:en_US.UTF-8 与 en_US

我通常通过配置我的 ubuntu

sudo locale-gen --purge en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

我已经安装了语言环境

# locale -a
C
C.UTF-8
en_US.utf8
POSIX
Run Code Online (Sandbox Code Playgroud)

我失踪了可以en_US吗?

linux ubuntu localization shell

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

如何使用 logger 命令记录多行消息?

我想通过命令将多行消息记录到系统记录器中

echo -e "foo\nbar" | logger
Run Code Online (Sandbox Code Playgroud)

但它显示为 2 个日志。

是否可以记录为单个日志?

linux ubuntu shell syslog

7
推荐指数
2
解决办法
7036
查看次数

遍历服务器列表的更好方法

我经常做一些事情,我循环遍历服务器列表以采取一些行动。例如:

for s in `cat servers.txt` ; do
    echo; echo $s
    ssh $s 'do something'
done
Run Code Online (Sandbox Code Playgroud)

我想知道(从 shell 的角度)是否有比 cat servers.txt

是的,我知道 mcollective、capistrano 等工具 - 我经常这样做是为了解决 mcollective 问题:-)

ssh shell bash mcollective

7
推荐指数
4
解决办法
3万
查看次数

为什么我无法在 Bash 中捕获 AWS EC2 CLI 输出?

我正在尝试aws ec2 delete-snapshot在 Bash 脚本命令中捕获 a 的输出,但我无法获得任何东西来捕获输出。我已经尝试过result=$(command)result=`command`等等,但是当我尝试 echo 时,$result那里什么也没有。

这是一些示例输出。

root@host:~# aws ec2 delete-snapshot --snapshot-id vid --output json>test

A client error (InvalidParameterValue) occurred when calling the DeleteSnapshot operation: Value (vid) for parameter snapshotId is invalid. Expected: 'snap-...'.
root@host:~# aws ec2 delete-snapshot --snapshot-id vid>test

A client error (InvalidParameterValue) occurred when calling the DeleteSnapshot operation: Value (vid) for parameter snapshotId is invalid. Expected: 'snap-...'.
root@host:~# cat test
root@host:~# testing=$(aws ec2 delete-snapshot --snapshot-id vid)

A …
Run Code Online (Sandbox Code Playgroud)

shell bash aws-cli

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

如何修复被控制字符搞乱的 tmux 会话

每隔一段时间,我就会不小心将一些控制代码注入到我的终端会话中(要么是错误的编码,要么是意外的gpg --export)。这有时会导致我的 tmux 会话丢失其格式并将控制字符打印到 tmux 窗口的边框中。之后所有 tmux 窗口都变得非常混乱。即使只是聚焦一个窗口也会弄乱其他窗口。终端的传统重置技巧(resetecho [CTRL]+V [CTRL]+C)无法修复它,因此我最终注销了所有活动会话并必须重新启动 tmux。

有人知道一种在不终止 tmux 的情况下重置/刷新所有 tmux 窗格的方法吗?

linux shell tmux

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