标签: shell

文件扩展名何时覆盖 Linux 上的 shebang 行?

一些 PHP cron 作业最近开始在共享服务器上失败。他们已经运行了将近一年没有错误和更新,但现在由于语法错误而无法运行。发生了什么?

事实证明,这些脚本现在突然在 PHP 4 下运行,而不是 PHP 5。在 /usr/local/bin/php 安装了一个 PHP 4 版本,但这是这些脚本上的“shebang”行:

#!/usr/local/php5/bin/php
Run Code Online (Sandbox Code Playgroud)

我做了一些实验:

% /usr/local/php5/bin/php --version
PHP 5.2.6 (cli) (built: May 11 2008 13:09:39) 
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
    with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
    with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies

% echo '<?= phpversion() ?>' | /usr/local/php5/bin/php
5.2.6

% printf '#!/usr/local/php5/bin/php\n<?= phpversion() ?>' > version
% chmod …
Run Code Online (Sandbox Code Playgroud)

linux shell unix-shell

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

在您的 Unix 系统上监控用户的 shell 活动?

信任但要验证。

假设我想雇用一个系统管理员,并授予他们对我的 Unix 系统的 root 访问权限。我想为他们禁用 X 窗口,只允许使用 shell(通过 SSH,也许),以便他们执行的所有操作都将通过 shell(而不是鼠标操作)。

我需要一个工具,将他们发出的所有命令记录到远程服务器,因为它们发出它们。因此,即使他们安装了后门并掩盖了他们的踪迹,这也将被远程记录。

  • 如何禁用除外壳访问之外的所有内容?
  • 是否有用于在命令发出时即时远程记录命令的工具?

security unix monitoring shell logging

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

旋转 nohup 文件 (nohup.log)

有没有一种“本地”方式可以将 nohup 旋转出文件?

linux shell bash logrotate nohup

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

FTP:如何摆脱“警告!以 ASCII 模式接收到 1 个裸换行符”消息?

我写了一个小 shell 脚本(在 CentOS 上)从我们的 APC UPS 设备下载统计数据。它工作得很好,但每天 cron 都会发送一封包含以下消息的电子邮件:

WARNING! 1 bare linefeeds received in ASCII mode File may not have transferred correctly.
Run Code Online (Sandbox Code Playgroud)

当我在 shell 上手动获取文件时,我也会收到该消息。我的脚本的 FTP 部分如下所示:

ftp -in $ftpip <<END_FTP_DOWNLOAD
user $ftpuser $ftppassword
get data.txt
bye
END_FTP_DOWNLOAD
Run Code Online (Sandbox Code Playgroud)

我怎样才能摆脱这个可能会打扰我同事的警告信息?

手动 FTP 连接如下所示。这次我尝试输入“ascii”:

220 AP9617 Network Management Card AOS v2.6.4 FTP server ready.
Name (192.168.0.50:myusername): username
331 User name okay, need password.
Password:
230 User logged in, proceed.
ftp> ascii
200 TYPE Command okay.
ftp> get data.txt
local: data.txt …
Run Code Online (Sandbox Code Playgroud)

linux shell ups ftp

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

mysql 不打印选择输出到终端

快速提问:我创建了来预热我的数据库的命令。问题是这些选择很大。当我进行这样的选择时,我将所有“jiba-jaba”都输入到我的终端窗口中。你怎么能让mysql“安静地”做选择?无需花费很长时间将所有废话打印到我的终端中?

mysql shell terminal

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

在 Debian 服务器上创建受限用户

我想为我的 debian 服务器上安装的每个关键程序创建一个用户帐户。例如,对于以下程序:

Tomcat Nginx 主管 PostgreSQL

根据我在网上的阅读,这似乎是推荐的。但是,我想尽可能地限制这些用户帐户,以便他们没有 shell 登录名,无法访问其他程序,并且尽可能地受到限制但仍然可以使用。

有人介意告诉我这是如何实现的吗?到目前为止,我的阅读表明:

echo "/usr/sbin/nologin" >> /etc/shells
useradd -s /usr/sbin/nologin tomcat
Run Code Online (Sandbox Code Playgroud)

但我认为可能有更完整的方法。

编辑:我正在使用 debian 挤压

security shell bash user-accounts

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

如果条件为真,则让 cron 作业休眠 5 分钟

我有一个脚本设置为每分钟运行一次。但是在我们提到的脚本中,如果条件为真,脚本必须休眠 5 分钟。这会如何影响 crontab?脚本会处于睡眠模式 5 分钟,还是会按照它在 crontab 中设置的每 1 分钟再次运行?

linux shell

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

nginxconf 文件中的空格重要吗?

我有一个nginx conf文件,由于使用环境变量,我有一个 shell 脚本 echo,我将该文件称为nginx.conf.template,然后我将回显结果放入实际的 中nginx.conf,请参阅下面的 shell 脚本:

#!/bin/sh
function subst() { eval echo -E "$2"; }
mapfile -c 1 -C subst < nginx.conf.template > nginx.conf
Run Code Online (Sandbox Code Playgroud)

我遇到的唯一问题是它删除了所有缩进的空格,我想这会导致问题,但我运行该nginx服务器的 docker 容器似乎没问题。我没有缩进有什么关系吗?如果确实重要, echo 可以保留所述空格吗?

nginx shell docker

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

docker ps -a 的 shell 脚本 | grep 查找正在运行的某些容器的数量

我想编写一个由我的开发构建服务器执行的脚本,该脚本将在构建和运行新容器之前删除任何“类似”的 docker 容器。

下面是我需要的 bash 脚本的伪代码

var name = $1
var number_of_results = # of containers returned from $(docker ps -a | grep "$name")

if(number_of_result > 0)
      docker rm -f $(docker ps -a | grep "$name")
Run Code Online (Sandbox Code Playgroud)

shell bash shell-scripting docker

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

普通 shell vs subshel​​l vs "bash -c" 最后一个命令退出代码

我正在尝试获取与 && 和 || 链接的最后一个命令的退出代码 正确。

我遇到了一种我无法解释的奇怪行为。请帮忙。

我使用这个测试脚本返回给定的退出代码:

gdubicki@mbp-greg:~ $ cat exit-code.sh
#!/bin/bash
echo "running exit-code with $1"
exit $1
Run Code Online (Sandbox Code Playgroud)

这按预期工作:

gdubicki@mbp-greg:~ $ ./exit-code.sh 1 && ./exit-code.sh 2 && ./exit-code.sh 3 || echo last exit code: $?
running exit-code with 1
last command exit code: 1

gdubicki@mbp-greg:~ $ (./exit-code.sh 1 && ./exit-code.sh 2 && ./exit-code.sh 3 || echo last exit code: $?)
running exit-code with 1
last exit code: 1
Run Code Online (Sandbox Code Playgroud)

但:

gdubicki@mbp-greg:~ $ /bin/bash -c "./exit-code.sh 1 && ./exit-code.sh 2 …
Run Code Online (Sandbox Code Playgroud)

shell bash

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