我有一个简单的脚本来读取用户的输入(密码)并将其保存到一个变量
read -s -p "password: " PASSWD; printf "%b" "\n"
Run Code Online (Sandbox Code Playgroud)
显然这不安全,因为它以明文形式存储在内存中,并且可以通过核心转储访问它?我如何从内存中读取这个变量。请注意,我不是在寻找更好的解决方案,我只是想知道我是否真的可以读取此密码/变量。
我在 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 时,它工作正常。
我有一个运行一组 php 脚本的 bash 脚本。当它运行时,它需要一个小时并将 CPU 固定在 95-99%。这会导致我们的灯堆栈(主要是 apache 进程)出现问题,并且我们在同一服务器上的网站开始吐出超时或 500 错误。
我怎样才能:
我不确定哪个是更好的解决方案。
在我移动最近执行的可执行文件后(或者更常见的是,在我从某处卸载某些内容并在其他地方安装不同版本之后),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)
这真的很烦人,因为它在我身上发生了几十次。我怎样才能阻止这种情况发生?
我希望自动将给定目录中的文件从一台服务器传输到另一台服务器。他们都在同一个网络上,可以互相ping通,甚至可以从一个到另一个ssh。
目前我的方法是 SSH 到服务器 A,将文件拉下来,SSH 到服务器 B 并上传它们......
我已经在这里看到了一篇文章,但我想问你们什么是从服务器到服务器传输文件、嵌入到 cron-job 或自动化的最佳方式。
这是我的限制:
两个服务器都不能有任何公共 Web 服务(没有端口 80,没有 apache,没有任何悲伤的脸)
两个服务器都不能使用任何类型的 FTP 连接(尽管我们可以 ssh)
预先感谢大家的帮助
我正在测试一个简单的脚本,我想知道为什么从目录执行时它可以正常工作:./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) 如何在控制台(Mac OS X、MacPorts 的最新 PHP/Apache)上为 PHP CLI 启用彩色消息?
export CLICOLOR=1
export LSCOLORS=gxfxcxdxbxegedabagacad
Run Code Online (Sandbox Code Playgroud)
似乎还不够,所有 PHP CLI 生成的输出在控制台上都是无色的。如果结果看起来像 XAMPP PHP 实例,那就太好了。有任何想法吗?
尝试在 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命令时是否可以选择其他下载位置?
这是一个已知问题吗,我已经搜索过类似的问题,但似乎没有一个是相同的。
我希望能够/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)
请问有什么线索吗?
谢谢人们。
我有一个 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 并且只更新那个。
有没有办法做到这一点?据我所知,无法确定提交了存储库的哪一部分,因此需要更新哪个目录。
是为每个项目创建单独存储库的唯一选择吗?(可能应该从一开始就这样做,如果是这样......)