似乎 Apache 至少需要对路径的所有子目录具有读取和执行权限才能为目录中的文件提供服务。
有没有人有可以验证这一点的脚本或单线?
我在想一个bash脚本,su - apache然后会尝试导航到路径中的每个目录。我会尝试一些东西,如果我想出一些有用的东西,我会发布。
我想设置我的 linux box,以便任何访问端口 80 的东西都会被告知询问 443 端口。我希望它与域、IP 或任何可能存在的特定细节无关。如果可以请求端口 80,则应该告诉它不。我们在 443 上这样做。
我将在 443 上使用 Apache,因此可以很容易地将其绑定到 80,但不要认为解决方案必须在端口 80 上包含 Apache。
需要明确的是,我正在寻找一种无需更改虚拟主机的解决方案。我了解可以通过继承传递的全局重定向。这需要更改 vhost。我正在寻找更全面、更不容易出现“哎呀,我忘了那条线,现在端口 80 暴露了我的未加密数据”的东西。
你会如何着手解决这个问题?iptables、apache、带有 netcat 的自定义 shell 脚本和一些使其成为 SSL 的魔法?
我有一个 PowerShell 脚本,当直接输入到 PowerShell 中时它可以工作。PowerShell 程序使用快捷方式运行:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\bin\Exchange.ps1'"
Run Code Online (Sandbox Code Playgroud)
我在 Windows 任务计划程序中尝试了大约 10 种不同的方法来首先打开上面的快捷方式,然后运行我保存的脚本文件,但它不起作用。它挂在“正在运行”上。
该脚本位于此处:
Z:\Exchange PowerShell\MailboxesApproachingOverQuota.ps1
Run Code Online (Sandbox Code Playgroud)
请注意,可以将脚本内容复制并粘贴到上面的 PowerShell 快捷方式中,它运行得非常好,并将输出通过电子邮件发送给我。
请注意,我使用的 PowerShell 实例来自上面显示的快捷方式,其中已经包含参数 - 因此我很难过在 Task Scheduler 中放置什么内容。
请问有什么帮助吗?
谢谢 :)
编辑当我直接在 CMD 中使用以下内容时:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\bin\Exchange.ps1'; &'Z:\Exchange Powershell\MailboxesApproachingOverQuota.ps1'"
Run Code Online (Sandbox Code Playgroud)
我得到:http : //tinypic.com/r/n1fkmg/8
当我使用以下内容时:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\bin\Exchange.ps1'; &'Z:\Exchange Powershell\MailboxesApproachingOverQuota.ps1'"
Run Code Online (Sandbox Code Playgroud)
powershell exchange-2007 task-scheduler windows-sbs-2008 shell-scripting
我想知道除了将每一行附加到文件之外,是否还有更好的方法来创建文件。我这样做是为了保持可读性,但是,没有缩进。有没有办法创建一个文件并一次输入多行?
if [ -d "/srv/www/$1" ]; then
echo "Domain name already exists!"
else
mkdir -p /srv/www/$1/public_html;
mkdir -p /srv/www/$1/logs;
echo "<VirtualHost>" > /etc/apache2/sites-available/$1
echo "ServerAdmin support@$1" >> /etc/apache2/sites-available/$1
echo "ServerName $1" >> /etc/apache2/sites-available/$1
echo "ServerAlias www.$1" >> /etc/apache2/sites-available/$1
echo "DocumentRoot /srv/www/$1/public_html/" >> /etc/apache2/sites-available/$1
echo "ErrorLog /srv/www/$1/logs/error.log" >> /etc/apache2/sites-available/$1
echo "CustomLog /srv/www/$1/logs/access.log combined" >> /etc/apache2/sites-available/$1
echo "</VirtualHost>" >> /etc/apache2/sites-available/$1
a2ensite $1
Run Code Online (Sandbox Code Playgroud) 这应该相当简单,但我不确定我错过了什么。
我想递归删除空目录,并获得正在删除内容的输出,此命令肯定有效,但我无法详细打印 -excec 的操作。
while [ -n "$(find . -depth -type d -empty -exec rm -v -rf {} +)" ]; do :; done
通过递归我的意思是,我想保持删除空文件夹,直到有没有其他的空文件夹。
$ tree .
.
??? empty
? ??? empty
? ??? empty
??? non-emty
??? ko
Run Code Online (Sandbox Code Playgroud)
此项只会删除树中的一个空文件夹
$ find . -depth -type d -empty -exec rmdir -v {} +
rmdir: removing directory, `./empty/empty'
Run Code Online (Sandbox Code Playgroud) 从文件中删除重复 IP 的最佳方法是什么
我使用命令:
sort file | uniq
Run Code Online (Sandbox Code Playgroud)
但我不确定这是否是最好的方法,也许我错过了什么?
备注:我的文件包含两个字段
文件示例
172.17.200.1 3.3.3.3
172.17.200.1 3.3.3.3
255.255.255.0 255.255.255.111
255.255.255.0 255.255.255.111
172.17.200.2 3.3.3.4
255.255.255.0 255.255.255.111
172.17.200.3 3.3.3.5
255.255.255.0 255.255.255.111
172.17.200.4 3.3.3.7
255.255.255.0 255.255.255.111
172.17.200.5 3.3.3.8
255.255.255.0 255.255.255.111
255.255.255.0 255.255.255.111
172.17.200.1 3.3.3.3
255.255.255.0 255.255.255.111
172.17.200.2 3.3.3.4
255.255.255.0 255.255.255.111
172.17.200.3 3.3.3.5
255.255.255.0 255.255.255.111
172.17.200.4 3.3.3.7
255.255.255.0 255.255.255.111
172.17.200.5 3.3.3.8
255.255.255.0 255.255.255.111
255.255.255.0 255.255.255.111
Run Code Online (Sandbox Code Playgroud) 我想将与输出一起执行的命令重定向到一个文件。
例如:#ls >ls_out.txt
ls_out.txt 应该是这样的:
ls
文件 1 文件 2
谢谢!
我有一个我正在处理的 shell 脚本,它使用 pssh 来获取远程服务器上用户的用户 ID:
for USER in $(cat users.txt); do
runuser -l mike -c 'pssh -H server.mike.com -o /home/mike/output id -u $USER'
cat /home/mike/output/server.mike.com
Run Code Online (Sandbox Code Playgroud)
文件 users.txt 包含一行
mikeghen
Run Code Online (Sandbox Code Playgroud)
当我运行我的脚本时,我收到一个错误:
[1] 14:23:15 [FAILURE] server.mike.com Exited with error code 1\
Run Code Online (Sandbox Code Playgroud)
但是,当我运行命令时:
runuser -l mike -c 'pssh -H server.mike.com -o /home/mike/output id -u mikeghen'
Run Code Online (Sandbox Code Playgroud)
我没有得到错误:
[1] 13:11:53 [SUCCESS] server.mike.com
Run Code Online (Sandbox Code Playgroud)
我觉得这与我之前问过的一个问题有关,为什么在 pssh 期间权限被拒绝?,所以我尝试将我的命令用引号括起来,但没有运气。有什么建议?
我需要在 Ubuntu 18.04 上通过 cron 运行一个脚本,myscript.sh除其他外,我希望在运行时向用户显示一条消息,以便他知道正在运行 cron(也许还有其他方法这样做不涉及任何与 GUI 相关的事情;如果是,请告诉我)。
但是由于 cron 在它自己的最小环境中运行,我无法弄清楚如何做到这一点。
我尝试了各种方法,最有希望的似乎是明确分配 DISPLAY 并启动一个终端,分配给它的这个显示并在该终端内运行一个显示消息的命令,这意味着myscript.sH我有两行
export DISPLAY=:0 XAUTHORITY=~/.Xauthority
gnome-terminal --display=:0.0 -- bash -c "xmessage -center -timeout 10 'ATTENTION. CRON IS RUN';exec bash"
Run Code Online (Sandbox Code Playgroud)
当我在我自己的终端中运行时,不涉及 cron,gnome-terminal --display=:0.0 -- bash -c "xmessage -center -timeout 10 'ATTENTION. CRON IS RUN';exec bash"这是有效的(当然,在我的终端中,我不需要启动另一个终端并且可以简单地运行xmessage -center -timeout 10 'ATTENTION. CRON IS RUN'......)。
但是 cron 抱怨以下消息(我将 cron 执行的输出重定向到一个文件,以便我可以看到出了什么问题):
No protocol specified
Unable to init server: Could not connect: Connection refused
Run Code Online (Sandbox Code Playgroud)
如果我不是放置 …
我有定期更新的转储目录。
我想删除所有超过一周的文件。
Bash 是首选,但也欢迎其他解决方案。
试图执行这个 shell 脚本。
#!/bin/bash
# Proper header for a Bash script.
# Cleanup, version 2
# Run as root, of course.
# Insert code here to print error message and exit if not root.
LOG_DIR=/var/log
# Variables are better than hard-coded values.
cd $LOG_DIR
cat /dev/null > messages
cat /dev/null > wtmp
echo "Logs cleaned up."
exit # The right and proper method of "exiting" from a script.
# A bare "exit" (no parameter) returns the exit status
#+ of …Run Code Online (Sandbox Code Playgroud) shell-scripting ×11
linux ×6
bash ×3
shell ×2
apache-2.2 ×1
cron ×1
find ×1
https ×1
ksh ×1
permissions ×1
powershell ×1
redirect ×1
scripting ×1
solaris ×1
sort ×1
ssh ×1
unix-shell ×1