为什么下面的脚本不会执行,而是给出一个语法错误else
:
LOGS3_DIR=~/logs
if [ -d "$LOGS3_DIR" ]; then
cd
cd "$LOGS3_DIR"
echo "$LOGS3_DIR"
for filename in `find "." -mtime 1 -type f`
do
if lsof "$filename" > /dev/null
then
# file is open
else
echo "deleting $filename"
rm "$filename"
fi
done
fi
Run Code Online (Sandbox Code Playgroud) 如何在文件中输入以下内容:
Hi
abcd
Run Code Online (Sandbox Code Playgroud)
我尝试使用echo "Hi\nabcd" >> ab.txt
,但在文件中它按原样编写(\n
包括在内,而不是换行符)
很多时候当我删除一个文件夹时,它说由于.nfs
文件而无法删除。
Error - Device or resource busy
Run Code Online (Sandbox Code Playgroud)
如何删除忽略这些错误的文件夹(rm
命令中有任何标志)?或者我必须找出使用它的进程,然后首先终止该进程?
在这种情况下,我如何才能删除整个目录?
如何在我的服务器上侦听特定端口并在有人尝试连接时仅返回 HTTP 200 状态?
可以nc
用来返回 HTTP 状态吗?
我的朋友在一家 IT 公司工作,他需要在一个目录(包括子目录)中保存 XML 文件的数量。
然而,使用ls -LR | grep .xml
或类似的计数需要很多时间,因为文件的数量以数百万计。
我在想什么是更好的方法?
某种后台进程是否可以解决这个问题,以便每当创建新文件或修改时间更改时,它都会影响计数器(文件数)?
在下面的脚本中,第一个for循环按预期执行,但不是第二个。我没有收到任何错误,脚本似乎只是挂起。
HOME=/root/mydir
DIR=$HOME/var
DIRWORK=$HOME/Local
for f in $(find $DIR -type f); do
lsof -n $f | grep [a-z] > /dev/null
if [ $? != 0 ]; then
echo "hi"
fi
done
for i in $(find $DIRWORK -type d -name work); do
echo "2"
done
Run Code Online (Sandbox Code Playgroud) 为什么以下脚本会出现以下错误:
./check1.sh: line 10: Hi,: command not found
./check1.sh: line 21: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)
检查1.sh:
#!/bin/bash
subj="host `hostname`"
healthcheckstatus=$(curl -s -o /dev/null -w '%{http_code}' http://localhost)
body="Hi, Application is up"
body1="Hi, Application is down"
mailbody=$([ "$applicationstatus" == 200 ] && $body || $body1)
if [ $healthcheckstatus != "200" ]
then
mail -s "$subj" me@domain.com <<EOS
`echo -e $mailbody`
EOS
fi
echo "email subject ::$subj"
echo "email body ::$mailbody"
Run Code Online (Sandbox Code Playgroud) 使用以下命令在 Ubuntu 11.04 中创建了一个新用户:
$ useradd -d /home/dummy -m dummy
Run Code Online (Sandbox Code Playgroud)
现在,在此之后我使用 设置了它的密码passwd dummy
,但是当我使用su - dummy
. 我收到消息:
没有家目录,用HOME=/登录
如果我检查用户帐户虚拟的条目/etc/passwd
:
$ cat /etc/passwd | grep dummy
dummy:x:1001:1001::/home/dummy:/bin/bash**
Run Code Online (Sandbox Code Playgroud)
我手动创建了目录以通过mkdir /home/dummy
.
现在,错误似乎已解决,但我很惊讶为什么没有bash_profile
在该主目录中创建类似的文件。
我们有 5 台服务器运行我们的代码:A、B、C、D 和 E。
从本地机器,我们将文件 sftp 到 A。然后
ssh id@A
su - applicationname
sftp id@A
get <file>
bye
tar -xzf <file>
logout
logout
Run Code Online (Sandbox Code Playgroud)
我们为其他 B 到 E 申请的程序相同。
有什么办法可以使用脚本来简化这个吗?
我们已要求 linux 团队提供无密码身份验证。但是我们不知道如何使用脚本在 SSH 会话中执行 sftp。
我需要列出和删除 .php、.xml 文件。为此,我正在使用find
命令。
列出:
find . -type f -name \*.php -print0
删除 :
find . -type f -name \*.php -print0 | xargs -0 rm -r
因为我跑find
了两次。是否可以存储第一个命令的结果然后在第二个命令中重用?
谢谢。