标签: bash

从内存中读取变量

我有一个简单的脚本来读取用户的输入(密码)并将其保存到一个变量

read -s -p "password: " PASSWD; printf "%b" "\n" 
Run Code Online (Sandbox Code Playgroud)

显然这不安全,因为它以明文形式存储在内存中,并且可以通过核心转储访问它?我如何从内存中读取这个变量。请注意,我不是在寻找更好的解决方案,我只是想知道我是否真的可以读取此密码/变量。

linux bash

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

杀死进程组不起作用

我在 Debian GNU/Linux 上。“kill”的手册页说我可以使用负 PID 值来杀死进程组,但是在命令行上运行时,它不起作用:

$ /bin/kill -9 -21581
/bin/kill: invalid option -- '2'

Usage:
 kill [options] <pid> [...]
etc.
Run Code Online (Sandbox Code Playgroud)

使用 bash 内置 kill 时,它工作正常。

linux debian bash kill

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

在较低优先级或限制 CPU 下使用 php 运行 bash 脚本

我有一个运行一组 php 脚本的 bash 脚本。当它运行时,它需要一个小时并将 CPU 固定在 95-99%。这会导致我们的灯堆栈(主要是 apache 进程)出现问题,并且我们在同一服务器上的网站开始吐出超时或 500 错误。

我怎样才能:

  • 以低优先级运行 bash 脚本和所有相关任务(也调用 PostgreSQL db 的 php 脚本),以便 web 服务器的 apache、php 和 db 任务始终优先,或者
  • 将脚本和相关任务的 CPU 使用率限制为,例如 25% CPU

我不确定哪个是更好的解决方案。

php bash cpu-usage

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

移动文件后 Bash 找不到文件

在我移动最近执行的可执行文件后(或者更常见的是,在我从某处卸载某些内容并在其他地方安装不同版本之后),bash 找不到它,即使它仍在 PATH 上。

例子:

find
sudo mv /usr/bin/find /usr/local/bin
find
Run Code Online (Sandbox Code Playgroud)

结果是:

bash: /usr/bin/find: No such file or directory
Run Code Online (Sandbox Code Playgroud)

这真的很烦人,因为它在我身上发生了几十次。我怎样才能阻止这种情况发生?

bash cache

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

两台服务器之间的文件传输,无FTP,无网络

我希望自动将给定目录中的文件从一台服务器传输到另一台服务器。他们都在同一个网络上,可以互相ping通,甚至可以从一个到另一个ssh。

目前我的方法是 SSH 到服务器 A,将文件拉下来,SSH 到服务器 B 并上传它们......

我已经在这里看到了一篇文章,但我想问你们什么是从服务器到服务器传输文件、嵌入到 cron-job 或自动化的最佳方式。

这是我的限制:

  • 两个服务器都不能有任何公共 Web 服务(没有端口 80,没有 apache,没有任何悲伤的脸

  • 两个服务器都不能使用任何类型的 FTP 连接(尽管我们可以 ssh)

预先感谢大家的帮助

php bash ftp perl

3
推荐指数
2
解决办法
2362
查看次数

Bash 脚本不适用于 `sh`

我正在测试一个简单的脚本,我想知道为什么从目录执行时它可以正常工作:./test.sh但是当我尝试使用“sh”命令时sh test.sh它不起作用:

test.sh: 3: test.sh: [[: not found
test.sh: 7: test.sh: [[: not found
Run Code Online (Sandbox Code Playgroud)

脚本:

#!/usr/bin/env bash

if [[ $1 = one ]]
        then
        printf "%b" "two\n" >&2
        exit 0
elif [[ $1 = two ]]
then
        printf "%b" "one\n" >&2
        exit 0
else
        printf "%b" "Specify argument: one/two\n"
        exit 1
fi
Run Code Online (Sandbox Code Playgroud)

scripting bash

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

在控制台上启用彩色 PHP CLI 消息

如何在控制台(Mac OS X、MacPorts 的最新 PHP/Apache)上为 PHP CLI 启用彩色消息?

export CLICOLOR=1
export LSCOLORS=gxfxcxdxbxegedabagacad
Run Code Online (Sandbox Code Playgroud)

似乎还不够,所有 PHP CLI 生成的输出在控制台上都是无色的。如果结果看起来像 XAMPP PHP 实例,那就太好了。有任何想法吗?

bash nix mac-osx php5 php-cli

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

Brew 安装 imagemagick curl 失败

尝试在 OS X Mountain Lion 上通过 brew 安装 imagemagick 时出现以下错误。它似乎是一个 curl 错误 - 因此为什么它在 SF 上而不是在另一个 Stack Exchange 站点上。

brew install imagemagick
==> Installing imagemagick dependency: pkg-config
==> Downloading http://pkgconfig.freedesktop.org/releases/pkg-config-0.27.tar.gz

curl: (7) couldn't connect to host
Error: Download failed: http://pkgconfig.freedesktop.org/releases/pkg-config-0.27.tar.gz
Run Code Online (Sandbox Code Playgroud)

运行brew install imagemagick命令时是否可以选择其他下载位置?

这是一个已知问题吗,我已经搜索过类似的问题,但似乎没有一个是相同的。

bash mac-osx curl imagemagick

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

SH 条件重定向

我希望能够/dev/null根据命令行开关将脚本的某些输出重定向到。我不知道我该怎么做。

以一种愚蠢的方式,它会是这样的(以一种过于简化的方式):

#!/bin/sh

REDIRECT=

if [ $# -ge 1 -a "$1" = "--verbose" ]; then
    echo    "Verbose mode."
    REDIRECT='1>&2 > /dev/null'
fi

echo "Things I want to see regardless of my verbose switch."

#... Other things...

# This command and others along the script should only be seen if I am in verbose mode.
ls -l $REDIRECT
Run Code Online (Sandbox Code Playgroud)

请问有什么线索吗?

谢谢人们。

bash redirection sh

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

编写一个 SVN 钩子来更新已提交代码的副本

我有一个 SVN 存储库,其中存储了许多子项目。现在在我的post-commit我只是遍历机器上所有可能的文件夹并svn update在每个文件夹上运行:

REPOS="$1"
REV="$2"
DIRS=("/path/to/local/copy/firstproject" "/path/to/local/copy/anotherproject" ... "/path/to/local/copy/spam")
LOGNAME=`/usr/bin/whoami`

for DIR in ${DIRS[@]}
do
    cd $DIR
    sudo /usr/bin/svn update --accept=postpone 2>&1 | logger
    logger "$LOGNAME Updated $DIR to revision $REV (from $REPOS) "
done
Run Code Online (Sandbox Code Playgroud)

问题是,当我只是提交其中一个项目的子文件夹时,这很慢而且是多余的。我想知道是否有更好的方法来确定我应该使用哪个 DIRS 并且更新那个。

有没有办法做到这一点?据我所知,无法确定提交了存储库的哪一部分,因此需要更新哪个目录。

是为每个项目创建单独存储库的唯一选择吗?(可能应该从一开始就这样做,如果是这样......)

bash svn

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

标签 统计

bash ×10

linux ×2

mac-osx ×2

php ×2

cache ×1

cpu-usage ×1

curl ×1

debian ×1

ftp ×1

imagemagick ×1

kill ×1

nix ×1

perl ×1

php-cli ×1

php5 ×1

redirection ×1

scripting ×1

sh ×1

svn ×1