如果我有一个进程 PID X,我怎样才能找出它在哪个目录中运行?我可以看到ps aux | grep X调用它的完整命令行。但是,在这种情况下,它是./script.sh,我想看看script.sh它正在运行哪个。
我必须通过 ssh 管理一大堆主机。但是我只能通过某个网关 ssh 服务器访问它们。
我有以下内容~/.ssh/config:
Host mygateway-www
Hostname www
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh mygateway nc %h 22
Run Code Online (Sandbox Code Playgroud)
但是我必须连接到很多这些机器。不是在 my 中放入数十个条目~/.ssh/config,而是无论如何我可以拥有这样的东西:
Host mygateway-*
Hostname ???WHAT GOES HERE????
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh mygateway nc %h 22
Run Code Online (Sandbox Code Playgroud)
我知道您可以%h在Hostname参数中使用,但这将是主机名。我真正需要的是某种字符串替换,比如 bash 的${VAR%thingie}. 这可能吗?
在mysql命令行中,按Control-C将取消程序,并使您返回到 bash。在psql, postgres 中,它将终止当前查询并且不会停止 psql 程序。有没有办法Control-C在 mysql 程序中获得 psql 风格的行为?我一直发现自己Control-C被习惯逼迫,不得不重新登录 mysql。
Control C不会杀死 bash,并在您按下它时将您注销。我认为这是一件好事。Control-C意思是“停止你正在做的事情”。
我正在尝试提交到 SVN 服务器。在服务器上,subversion 存储库是 NFS 挂载的。进行提交时,我收到此错误消息:
svn: Can't get exclusive lock on file '/svn/repo/db/transactions/7802-2.txn/rev-lock': No locks available
Run Code Online (Sandbox Code Playgroud)
这曾经有效,并且没有任何软件升级/更改。然而 NFS 服务器确实更早崩溃了,所以它可能是“损坏的”(如果这甚至适用于这里)
我正在尝试编写一个强大的 bash 脚本,并在其中创建一个后台进程。在脚本的最后,我想杀死它。我有它的PID。
我在想这样的事情
while [[ ps ef $PID ]] ; do
kill $PID
sleep 0.5
done
Run Code Online (Sandbox Code Playgroud)
有什么更好的建议吗?这种方法有什么可能的问题吗?
我们使用 Nagios,当有事情发生时我会收到短信。许多其他系统管理员也会收到短信。但是,人们是否有其他聪明/酷炫的方式收到 nagios 警报?
我有一个安装了 anacron 的 Ubuntu 系统。但是我很确定它没有运行。它没有运行 /etc/cron.daily 中的命令来轮换 syslog 文件(我使用的是 sysklog,它有自己的轮换日志方法,而不是使用 logrotate)。上次轮换日志是在 2009 年 10 月。/var/spool/anacron/cron.daily存在且内容为20091015. AFAIR 我们当时停电了,一切都重新启动了。
我该如何调试 anacron?我怎么知道它为什么没有运行?我的第一直觉是寻找/var/log/anacron,但那并不存在。我该如何修复它以使其再次运行?
我有一个使用 apache 2 提供的文本文件目录。通常,当我(或任何用户)访问文件时,他们会在浏览器中看到它们。我想“强制”* Web 浏览器弹出“另存为”对话框。我知道这可能与Content-Disposition标题有关(更多信息)。
有没有办法为每个文件打开它?
理想情况下,我想要这样的东西:
<Directory textfiles>
AutoAddContentDispositionHeaders On
</Directory>
Run Code Online (Sandbox Code Playgroud)
然后 apache 将设置正确的内容处置标头,包括使用相同的文件名。
使用 apacheHeader指令可能会发生这样的事情。
如果通过在 debian 中站在 apache 中包含它,则奖励积分。
我可以做一个简单的 PHP 包装器脚本,它接受一个filename参数,调用header(...)然后打印文件,但是我必须验证输入等。这是我试图避免的工作。
* 我知道当涉及到网络时,您实际上不能强迫事物
我有一本厨师食谱(适用于 apache2)。它无法在一个节点上工作。所以我试图调整它并更新它,但节点似乎没有下载新版本。我已经能够将所有内容从我的本地机器上传到厨师服务器knife upload .,成功,并打印出它上传了我更改的 apache2 食谱位。
当我chef-client在节点上手动运行(以 root 身份)时,我可以看到它与服务器联系,获取运行列表等。但是,其中的配方文件/var/cache/chef/cookbooks/apache2是旧文件。配方失败了(因为它没有我所做的更改)。
如何让节点上的 Chef 客户端使用 apache2 食谱的新更新版本?我需要在食谱中修改版本号吗(我没有这样做过)?
chef-client -l debug 输出:
[2015-01-30T10:51:31+01:00] DEBUG: Synchronizing cookbook apache2
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_ldap.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_xsendfile.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_auth_openid.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_setenvif.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not …Run Code Online (Sandbox Code Playgroud) 在 UTF8 和非 UTF8 字符串出现一些问题后,我们正在对 UTF8 进行标准化。我需要做的一件事是检查 MySQL 数据库中的所有内容是否都在 UTF8 中?我需要检查什么?
我正在考虑将所有这些放在 nagios 插件中以检查所有内容是否都在 UTF8 中。建议?