Articles of bash

Firefox自动化脚本

一些terminal需要能够自动启动Mozilla(或更方便的其他浏览器)并访问预先指定的页面。 如何编写一个运行localy的脚本,并在被调用时触发浏览器并访问页面? 这并不需要太复杂。

不能通过bashterminalinput

我经常在Debian VPS中遇到这个问题。 当我input字符时,terminal拒绝显示它们。 相反,我得到一个哔声,并显示输出 (arg : 4) (arg : 5) (arg :-1) 然后,一段时间后问题自动解决,我可以恢复打字。 我想知道什么会导致这个问题? 以及如何对付它。 谢谢

按创build时间在服务器之间复制文件

我的bash脚本知识是非常薄弱的​​,这就是为什么我在这里求助。 什么是最有效的bash脚本根据性能来查找和复制文件从一个LINUX服务器到另一个使用规格说明如下。 我需要一个bash脚本,它只能在0到10分钟之间的时间间隔内,在名称为“Z”的目录中find在服务器A中创build的新文件。 然后将它们传输到服务器B.我认为这可以通过格式化查询并为每个创build的新文件执行“scp /X/Y…/Z/file root @ hostname:/ X / Y … / Z /“如果脚本在服务器B上找不到这样的远程path,它将继续复制第二个文件存在的目录。 文件应该复制权限,组,所有者和创build时间。 X / Y …是各种目录path。 我想设置一个cron作业来每10分钟执行一次这个脚本。 所以在这种情况下performance是非常重要的。 谢谢。

login后立即踢出SSH和Console

我正在运行的Ubuntu 10.04,我突然有这个问题,我通过SSH或在控制台login后立即踢出来。 以下是启动时的样子: Using IPI No-Shortcut mode registered taskstats version 1 blkfront: xvdb: barriers enabled xvdb: unknown partition table XENBUS: Device with no driver: device/console/0 md: Waiting for all devices to be available before autodetect md: If you don't use raid, use raid=noautodetect md: Autodetecting RAID arrays. md: Scanned 0 and added 0 devices. md: […]

Juju / Puppet服务的configuration文件

我写了自己的服务,我想通过Juju / Puppet脚本部署它。 主要目标是自动完成部署的全过程,我发现Juju / Puppet应该是最好的。 我必须准备软件包(deb / rpm)还是可以从远程仓库(它是python服务)下载? 我应该如何pipe理这个服务的configuration文件? 每个节点有略微不同的configuration文件,我想知道什么是自动解决这个问题的方法。 有没有什么常用的configuration文件格式可以使用,或者我可以select在哪个节点上configuration哪些线路,或者指定“hostname = hostname -s ”,它将由Juju / Puppet执行并覆盖。 任何常见解决scheme 我感兴趣的是如何在生产中完成 – 在数据中心,testing环境等。pipe理员如何处理所有这些configuration文件。 他们如何自动化他们的工作? 最近,我不得不configuration许多不同的服务(其中一些只是从源代码安装,因为我的发行版本中没有包 – 我使用Ubuntu 12.04)在几个不同的服务器上。 我不得不创buildtesting环境,当我不得不在每个节点上重复每个configuration时,我感到非常无聊。 我不是bash脚本专家,可以在单个或几个bash脚本中自动化整个过程,所以也许像Juju / Puppet这样的工具可能会有所帮助 – 特别是我不是bash的粉丝:)而且我想写一点因为它可能在bash中。 我从来没有在数据中心工作,所以我想知道专业人士如何做到这一点。

ftp服务器来限制'get'和'ls'

我想以这样的方式configurationFTP服务器,没有客户端可以使用get和ls命令是否可以做到这一点的ftp服务器configuration,或者我们可以去周围的方法请指导我 我GOOGLE了,发现没有直接的configuration来做到这一点 提前致谢 !!!

如何通过从shell脚本variablesreplace文件名geting中的单词来重命名多个文件?

这个问题就像这个线程。 如何通过replace文件名中的单词来重命名多个文件? 我的例子比上面的主题更复杂。 这两个variables是从shell脚本其他位置获取的$ name和$ newname。 $ name和$ newname可能有unicode字或像[] <>♫…等特殊的sym,所以任何人都可以帮助我提供一种方法来添加一部分shell脚本来解决文件名replace问题。 顺便说一句,我尝试键入两种命令来更改文件名的一部分,但它不能工作。 rename.ul '$name' '$newname' /home/fy6877/test/final/* ls /home/fy6877/test/final/|xargs -I$ rename.ul '$name' '$newname' $

用于更改postfix邮箱文件的文件date的脚本

我有一个Maildir结构,从备份错误地恢复,所有文件都有文件date的恢复,而不是当他们已经被创build/接收。 什么是最好的方法来纠正这一点? 我想recursion读取第一个Received:行,提取date和触摸文件,但是它比perl / shell技能稍高。 有人可以帮忙吗?

为什么这个脚本停止/无法继续在Ubuntu 10.04

我有下面的脚本,它工作正常,直到安装JRuby 1.7.0.RC2行的脚本结束,但脚本停止。 我添加了$? 在脚本的最后尝试让它输出上一行的退出代码,但错误代码不会被打印。 #!/bin/bash # Update OS sudo apt-get -y update sudo apt-get -y upgrade # Install package dependencies sudo apt-get -y install git-core curl make g++ openjdk-6-jre-headless ant openjdk-6-jdk redis-server # Install rbenv cd ~ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(rbenv init -)"' >> ~/.bash_profile source ~/.bashrc […]

Bash和双引号转义

如果我在shell中运行这样的东西: curl -I http://example.com -H "If-None-Match: \"da8e7e-557a9-4cbc6f2e68780\"" 我得到正确的结果,但是当我试图在我的bash脚本中运行它: http_code=$(curl -I $SELL_URI -H "If-None-Match: "\$etag\"" | grep …) 我的curl -I $SELL_URI -H "If-None-Match: "\"$etag\"看起来像这样: $"-None-Match: "da8e7e-557a9-4cbc6f2e68780