我有一个需要在共享虚拟主机上运行的 php 脚本。我创建了一个执行 sh 脚本的 cron 作业。我的 crontab 中的命令是:
/bin/sh /home/user/script.sh
我假设它是 Bourne Shell(或兼容的东西)。脚本本身是:
#!/bin/sh
cd /home/user/public_html/folder/
#updating DB
php -q ./run_interactive_job.php batch_control_files/updateDB
echo Updated DB results
Run Code Online (Sandbox Code Playgroud)
我有以下问题:
我可以为 php 命令添加很好的优先级吗?或者我是否需要在 cron 命令中将其添加到脚本中。
哪一个更有可能工作?
nice 10 php -q ./run_interactive_job.php batch_control_files/updateDB
上述命令在以较低优先级运行时会成功吗?
PS:基本上,这个脚本在我通过浏览器运行它之前已经使服务器过载,它影响了该服务器上的 APACHE,导致我的主机阻止了该文件。我一再要求他们解锁以使用不同的参数对其进行测试。现在我试图以较低的优先级通过 cron 运行它 - 希望它不会影响 APACHE。但我不希望它再次产生问题,因此我尝试使用nice。
更新:我使用了那里显示的批处理文件。我在批处理文件中的 php 之前使用了 nice 命令。唯一的区别是:
nice -n 10 php -q ./run_interactive_job.php batch_control_files/updateDB
我添加了命令来运行其他具有相同属性的 php 脚本。他们都工作得很好。
感谢大家的输入@sm4rk0 答案解决了我的问题
在 bash 中,您可以使用 Mf 和 Mb 将光标向前和向后移动一个单词,但是有没有办法向前或向后移动一个参数?如果不是开箱即用,也许是通过某种配置?
换句话说,我想光标在下面标记的位置之间导航。
cp "foo bar.txt" "/tmp/directory with space"
^ ^ ^
| | |
Run Code Online (Sandbox Code Playgroud) 好的,所以我有一个包含数千个字符串的文件。每个人都在自己的线上。我想制作一个脚本,允许我获取这个文件,调用它list.txt,并从每一行中获取项目,并根据第一个字母或数字将其放入单独的文件中。例如,假设文件的前几行是这样的:
cheese
pizza
pepperoni
lettuce
grahamCrackers
0-0Foods
chicken
lentils
1-2Items
Run Code Online (Sandbox Code Playgroud)
我需要把它分解成这些:
cheese
chicken
Run Code Online (Sandbox Code Playgroud)
grahamCrackers
Run Code Online (Sandbox Code Playgroud)
lettuce
lentils
Run Code Online (Sandbox Code Playgroud)
pizza
pepperoni
Run Code Online (Sandbox Code Playgroud)
0-0Foods
Run Code Online (Sandbox Code Playgroud)
1-2Items
Run Code Online (Sandbox Code Playgroud)
我想在 OS X 上用 BASH 完成这个。谢谢。
哦,如果有帮助的话。每行上的项目永远不会有空格,它们将始终包含为一个单词。EG(从不鸡汤,而是鸡汤)
类似岗位约cd,我已经覆盖exit到做到以下几点:
function exit() { $HOME/script.sh && builtin exit "$@"; }
Run Code Online (Sandbox Code Playgroud)
虽然这在exit直接调用时按预期工作,但是当 shell 通过 CTRL-D 退出时,它不会执行,或者,如果它确实执行,脚本就无法完成。
是什么赋予了?exit使用 CTRL-D 时是否调用了其他方法?
我想在 Mac OS X(或一般的 Unix)上的 Vim 中在后台运行一个进程。
我希望并期待以下或一些变体来实现这一点:
execute "!my_command &"
Run Code Online (Sandbox Code Playgroud)
或者
!my_command &
Run Code Online (Sandbox Code Playgroud)
或者
!my_command \&
Run Code Online (Sandbox Code Playgroud)
或其他一些替代方案。
不幸的是,这似乎根本没有执行my_command。我希望有一些轻量级的选择。
一种选择是编写一个包装器脚本来分叉命令并退出,但我确定有人已经这样做了(GNU Parallel?)。
实现这一目标的最佳方法是什么?
这是我的代码:
#!/bin/bash
if [[ -d ~/viwiki ]]; then
cd ~/viwiki
else
mkdir ~/viwiki
cd ~/viwiki
fi
if ! [[ -d ./log ]]; then
mkdir log
mkdir log/log
mkdir "log/wget"
elif ! [[ -d ./log/log ]]; then
mkdir log/log
elif ! [[ -d "./log/wget" ]]; then
mkdir "log/wget"
fi
Run Code Online (Sandbox Code Playgroud)
运行时,出现错误:
tuankiet65@UbuntuPC:~$ sh viwik/test2.sh
viwik/test2.sh: 2: viwik/test2.sh: [[: not found
viwik/test2.sh: 8: viwik/test2.sh: [[: not found
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
在我执行一个命令后,是否有一个命令可以取消用户的 sudo 权限,例如sudo pmset sleep 0当我尝试执行另一个 sudo 命令时,它会再次要求我输入密码?
目前,在一个 sudo 命令之后,它将执行任何其他命令,而无需询问我的密码。该命令exit似乎不起作用。
我正在编写一个程序来禁用系统中的用户,我想替换/bin/bash为/bin/false.
例子
xxx:x:1:22:xx:/export/home/xx:**/bin/bash**
Run Code Online (Sandbox Code Playgroud)
替换为
xxx:x:1:22:xx:/export/home/xx:**/bin/false**
Run Code Online (Sandbox Code Playgroud)
我想使用 bash 脚本。
我知道一种方法是使用sed. 但我不擅长正则表达式。
任何人都可以帮忙吗?
当我尝试运行诸如:make或 之类的命令时:!ls,它会在完全不同的屏幕/视图中显示输出,并且在此过程中我正在编辑的文件不可见。无论如何我仍然可以看到我的文件并进行编辑,而我执行的命令可能可以在底部的窗口中运行,可能是快速修复窗口?
如何调用Ctrl-a在 Linux 终端会话中。我正在尝试使用屏幕共享屏幕。
打开多用户的命令是Ctrl- A:multiuser on ,我知道如何按键盘上的Ctrl+a但Ctrl-的命令行版本是a什么?
我将如何键入Ctrl- A:multiuser on,而没有 Linux 告诉我找不到该命令?