我可能做了一些非常愚蠢的事情,但是我弄不清楚是什么。 在云主机上运行Ubuntu Server 12.04(数字海洋,如果有的话)。 所有的shell脚本都不做任何事情,只是立即返回提示,没有错误,警告,甚至中指的摇摆。 start-stop-daemons脚本不会从命令行运行“./script-name”,而不仅仅是cron 执行位被设置 shell是/ bin / bash 用户是根 尝试改变#!/ bin / sh到#!/ bin / bash 尝试不使用破折号通过dpkg-reconfigure dash 脚本正在parsing – 如果我编辑它是非法的,我会得到错误 用尽想法… 有没有什么原因,我只是不会看到输出?
我需要通过SSH来检查用户php和apache是否运行。 我很缺乏经验,不能找出正确的命令语法来完成这一点。 看起来grep命令应该可以工作,但是我一直无法弄清楚.. 有人知道怎么做吗?
如何确保在工作完成后得到通知? 这是我正在运行的: $ time find -exec chmod or '{}' \+& 我想知道工作完成多久,并通知完成。 我想这样做: $ time ls -l 2>&1 | write buttlebutkus pts/0& (用ls -l做一个快速testing) 但结果是有点weird 。 虽然它似乎本质上工作,但恐怕也许只是因为ls发送EOF的write 。 编辑: 我只是试过这个: $ time find -exec chmod or '{}' \+ 2>&1 | write buttlebutkus pts/0& 现在我看到数百万页的输出,不能用ctrl-z或ctrl-c离开它。
我使用以下脚本来更改打开目录(Apple的LDAP)密码。 我不喜欢在脚本中留下实际的密码 – 是否有任何方法来隐藏或伪装,以便脚本可以被其他用户使用,但以某种方式看不到密码? #!/bin/bash PATH=/bin:/usr/bin:/sbin:/usr/sbin export PATH echo echo Enter username you\'d like to change password for: read USERNAME echo echo Enter New Password for "$USERNAME" read PASSWORD dscl -u diradmin -P 'secretpasswordhere' /LDAPv3/127.0.0.1 passwd /Users/$USERNAME $PASSWORD echo Password successfully changed for $USERNAME to $PASSWORD
我试图让服务器启动时启动一个独angular兽服务器。 我创build了一个shell脚本,如果我以ubuntu用户身份login并运行,就可以运行 /etc/init.d/unicorn start Shell脚本 #!/bin/sh case "$1" in start) cd /home/ubuntu/projects/asbest/current/ unicorn_rails -c /home/ubuntu/projects/asbest/current/config/unicorn.rb -D -E production ;; stop) if ps aux | awk '{print $2 }' | grep `cat ~/projects/asbest/current/tmp/pids/unicorn.pid`> /dev/null; then kill `cat ~/projects/asbest/current/tmp/pids/uni$ ;; restart) $0 stop $0 start ;; esac 当我重新启动服务器时,我注意到独angular兽服务器没有监听套接字。 由于我作为ubuntu用户成功运行代码,所以我修改了脚本让它总是通过sudo使用ubuntu用户。 #!/bin/sh case "$1" in start) cd /home/ubuntu/projects/asbest/current/ sudo […]
我写了一个脚本来源bash shell片段。 shell片断应该是一种configuration文件,基本上它是一堆bashvariables。 这里的问题是当一些stringvariables包含应该被转义的字符。 因为他们不能逃脱,这个剧本可能会迟到或者有不受欢迎的行为。 目前,我的脚本正在validationshell碎片(configuration文件)bash语法( bash -n ),但是如果有任何字符要被转义,那么将不会被检测到。 所以,我想要自动转义敏感字符,或者,至less,检测他们是一些,所以我可以显示错误并退出。 任何想法我怎么能实现呢?
我正在使用rsync克隆从远程服务器(MT DV4.0)到本地(Ubuntu 11.10)的变化。 然后我使用下面的复制/粘贴脚本来压缩然后存档文件。 #!/bin/bash #################################### # # Backup to NFS mount script with # grandfather-father-son rotation. # #################################### # What to backup. backup_files="/home/server-backups/var/www/vhosts /home/server-backups/var/www/vhosts" # Where to backup to. dest="/home/bryan/server-tar" # Setup variables for the archive filename. day=$(date +%A) hostname=$(hostname -s) # Find which week of the month 1-4 it is. day_num=$(date +%d) if […]
很多我的服务器软件是通过apt-get安装的,我想知道是否有一个小的shell脚本,我可以得到它将更新所有这些软件。 之后我还需要重新启动我的服务器或在运行此更新之前停止运行脚本? 它是如此简单: apt-get update?
我正在使用xargs从远程服务器中删除文件。 xargs -a /var/log/del.log -i -exec ssh [email protected] 'rm -rf "{}"' del.log包含在本地服务器上删除的文件的path,我想在远程服务器上删除它们。 每一件事情都可以正常工作,但是当它们是一个像~$excel.xlsx文件命名办公室文件时,问题~$excel.xlsx当这样的文件命名出现时,xargs会使命令变得像这样。 ssh [email protected] 'rm -rf "~.xlxs"' – which is wrong, 它应该像 – ssh [email protected] 'rm -rf "~$excel.xlxs"' 为什么xargs是这样做的? 可能是xargs除了它是可变的。 我需要一些解决scheme。 还是有更好的方法来从远程服务器上删除文件? 只要本地服务器具有需要在远程删除的path列表。
我有一个工具执行长时间运行的任务。 这个工具接受一个configuration文件。 现在我需要同时运行大约15个不同configuration的实例(使用这个屏幕)。 所有的实例应该同时重启(或几乎同时)。 但我认为这个任务可以自动地以某种方式启动/停止所有可能的configuration。