标签: scripts

启动时如何自动启动虚拟机?

我的 Ubuntu12.04 中有很多 Virtual box 机器,每次关机或重新启动时,我都必须一一启动它们。

我想帮助编写启动时自动启动 VBox 机器的脚本。

boot virtualbox scripts autostart

60
推荐指数
5
解决办法
22万
查看次数

运行脚本时出现错误消息“来源:未找到”

我创建一个小的自动安装脚本将修改/etc/profile$HOME/.profile如果某些路径不出口。然后,我想自动重新加载这些。

我读过这样source做,所以我启动了我的终端并输入:

source /etc/profile
source ~/.profile
Run Code Online (Sandbox Code Playgroud)

从终端,它没有输出任何错误。

但是,将这两个命令放在 Bash 脚本中会生成source: not found.

  1. 我怎样才能确定脚本是由 Bash 执行的,即使#!/bin/sh是指定的(显然,它不能保证)?
  2. 这两个来源明明在那里,为什么要说找不到呢?

command-line bash scripts

60
推荐指数
4
解决办法
15万
查看次数

为什么 Linux 中的 Python 需要 #!/usr/bin/python 行?

非常简单的问题:在 Linux 中,为什么 Python 需要该行

#!/usr/bin/python
Run Code Online (Sandbox Code Playgroud)

在 python 文件的开头,因为 Windows 没有?

它有什么作用?因为“Python 链接”的描述有点含糊......

python scripts

58
推荐指数
5
解决办法
8万
查看次数

如何显示文件的修改时间?

我想要一种方法来查找和打印文件的修改时间,以便在 bash 脚本中使用。

我想出了:

ls -l $filename | cut -d ' ' -f '6-8'
Run Code Online (Sandbox Code Playgroud)

哪些输出:

Jul 26 15:05
Run Code Online (Sandbox Code Playgroud)

虽然我想避免 parsing ls,但将年份放在那里也很有用。

理想情况下,我希望看到类似于date命令默认输出的输出。

Tue Jul 26 15:20:59 BST 2016
Run Code Online (Sandbox Code Playgroud)

还有哪些有用的方法可用?

command-line bash scripts

58
推荐指数
1
解决办法
10万
查看次数

从挂起恢复后如何执行命令?

我有一个脚本,为了让我的笔记本电脑暂停/恢复工作而执行该脚本。然后xinput,当我启动会话以设置双指滚动和键盘快捷键时,将执行另一系列,xkbsetxmodmap命令。当我从挂起状态恢复时,两指滚动和我的键盘快捷键将不起作用。我需要再次手动执行第二个文件中的命令。如何将这些添加到挂起/恢复脚本以自动完成?见下文:

暂停/恢复脚本

/etc/pm/sleep.d/20_custom-ehci_hcd

#!/bin/sh
#inspired by http://art.ubuntuforums.org/showpost.php?p=9744970&postcount=19
#...and http://thecodecentral.com/2011/01/18/fix-ubuntu-10-10-suspendhibernate-not-working-bug    
# tidied by tqzzaa :)

VERSION=1.1
DEV_LIST=/tmp/usb-dev-list
DRIVERS_DIR=/sys/bus/pci/drivers
DRIVERS="ehci xhci" # ehci_hcd, xhci_hcd
HEX="[[:xdigit:]]"
MAX_BIND_ATTEMPTS=2
BIND_WAIT=0.1

unbindDev() {
  echo -n > $DEV_LIST 2>/dev/null
  for driver in $DRIVERS; do
    DDIR=$DRIVERS_DIR/${driver}_hcd
    for dev in `ls $DDIR 2>/dev/null | egrep "^$HEX+:$HEX+:$HEX"`; do
      echo -n "$dev" > $DDIR/unbind
      echo "$driver $dev" >> $DEV_LIST
    done
  done
}

bindDev() {
  if [ -s $DEV_LIST ]; then
    while read driver dev; do …
Run Code Online (Sandbox Code Playgroud)

session suspend-resume scripts

57
推荐指数
3
解决办法
4万
查看次数

通过 SSH 运行 nohup 命令,然后断开连接

我想start.sh在运行这个的远程服务器上执行一个脚本:

nohup node server.js &
Run Code Online (Sandbox Code Playgroud)

天真地,我这样称呼 SSH:

ssh myserver <<EOF
./start.sh &
EOF
Run Code Online (Sandbox Code Playgroud)

这会启动脚本,但会保持会话处于连接状态。我想在脚本中使用其他命令执行此步骤,所以这不好。

如何通过 SSH 连接到远程机器,nohup在后台启动命令,然后断开连接?我想我可以将 SSH 进程本身置于后台,但这似乎不对。

ssh scripts nohup background

57
推荐指数
4
解决办法
19万
查看次数

使用-exec时如何在find命令中输出文件名?

我使用以下行查找 PWD 的所有子目录并svnadmin verify在每个目录上运行(我已经知道它们是 Subversion 存储库)

find ./* -maxdepth 0 -exec svnadmin verify {} \;
Run Code Online (Sandbox Code Playgroud)

这很有效,除了输出看起来像这样的事实:

* Verifying repository metadata ...
* Verifying metadata at revision 1 ...
* Verifying metadata at revision 2 ...
* Verifying metadata at revision 4 ...
* Verifying metadata at revision 5 ...
* Verifying metadata at revision 6 ...
* Verifying metadata at revision 9 ...
* Verifying metadata at revision 10 ...
* Verifying metadata at revision 12 ...
* …
Run Code Online (Sandbox Code Playgroud)

command-line bash scripts find

56
推荐指数
4
解决办法
6万
查看次数

OpenVPN成功连接后如何运行脚本?

如何将脚本关联到 OpenVPN,以便它在 VPN 连接成功时运行?

scripts vpn openvpn

55
推荐指数
3
解决办法
21万
查看次数

如何在登录时运行命令?

登录后我需要运行以下命令(带真实参数):

ssh -f user@example.com -L 54321:example.com:54321 -N
Run Code Online (Sandbox Code Playgroud)

我只需要我的用户,而不是机器上的所有用户。此外,无论我是通过 GUI 登录还是通过 SSH 登录到普通 shell 终端,我都需要它来运行。我什至想知道如何在没有安装 GUI 的机器上执行此操作。

按照说明,我会将上面的行放在哪里运行?

startup command-line scripts login

55
推荐指数
1
解决办法
14万
查看次数

如何设置 cron 作业来运行 shell 脚本?

我已经设置了一个 cron 工作:

20 * * * * /usr/bin/sh /home/lucky/myfile.sh
Run Code Online (Sandbox Code Playgroud)

主要问题是在预定时间出现错误:“mail has sent to /var/spool/mail/lucky”。

myfile.sh 的内容是:

mkdir jh
cd jh 
Run Code Online (Sandbox Code Playgroud)

scripts cron

55
推荐指数
2
解决办法
42万
查看次数