Tag: bash

当远程login到CentOS服务器时,Yum更新通知

我有3个CentOS 6.3虚拟服务器,我pipe理。 我有他们所有的设置和configuration,但是记住不时地运行yum update是非常糟糕的。 有无论如何,当通过SSHlogin到terminal时,我可以通知有多less更新可用(如果有的话)。 最好只有在有更新的情况下。 我怀疑我需要configuration一个命令运行.bash_profile但似乎无法find正确的命令使用谷歌。

BASH:coproc的替代品

我有一些脚本使用coproc来控制subprocess的标准输出/标准input。 不幸的是,coproc是在Bash 4.0中引入的,在我使用的很多系统中,有一个早期版本的bash。 有coproc的替代品吗?

如何将选项添加到Bash函数

我是Linux新手(使用Ubuntu 10.10),我想添加一个函数.bashrc启动/停止一个tomcat服务器。 我试图parsing命令“tomcat”的两个选项。 我已经尝试了以下各种排列,但没有一个工作。 export CATALINA_HOME=/tomcat/directory function tomcat { if [$1 = "-s" ]; then `sh $CATALINA_HOME/bin/startup.sh` elif [$1 = "-x"]; then `sh $CATALINA_HOME/bin/shutdown.sh` else echo "Enter '-s' to start Tomcat, '-x' to shutdown." fi } 为什么这不工作? 什么是正确的方法来做到这一点? 谢谢!

重新分区两个磁盘而不丢失数据

我在一家软件公司实习,我碰到了一堵砖墙。 这是交易: 问题:我们在这里有一些框被错误地分区为2 x 500 GB的驱动器。 实际驱动器是2 x 1 TB驱动器。 这些本质上是只有一半可用磁盘空间的机器。 我的任务是编写一个脚本来重新分区这些驱动器。 迄今为止的解决scheme:我有一个脚本,禁用所有进程和重新启动,然后修复分区的另一个脚本。 问题是数据丢失。 我在找什么:我需要一个解决scheme,但保存所有的数据。 我的第一个虽然只是将分区扩大到适当的大小,但我不知道这是可能的。 另一种解决scheme是将所有数据复制到Disk2,分区Disk1,将数据移回到Disk1,最后分区Disk2。 问题是,我对Linux很新,我不知道该怎么做。 我有权访问fdisk实用程序和分开的实用程序。 他们都是types的ext3。 编辑:11/3/11 好的。 所以我在两个磁盘上都有大约1GB未使用的未分配空间。 我想做如下: 在大小为1GB的SDB上创build一个新的扩展分区,在这里称为sdb99 将sda5 sda6 sda7复制到新的SDB分区sdb99 我可以从这些新的分区中的每个文件夹复制“/”到某个文件夹吗? 我是否需要在这个新的分区上放置一个文件系统来复制那个文件? 如果我只是复制“/”,将保存整个目录结构? 像这样在磁盘之间移动文件是一个简单的任务吗? 删除sda5 sda6 sda7 ,然后用两倍的大小重新创build它们 我真的需要删除这些吗? 我不认为我可以增长3个连续的分区,即使可以,文件系统也不会增长…对吧? 将数据从sdb99复制到新的sda5 sda6 sda7分区 这应该像移动包含所有“/”的目录的内容一样简单,对吧? 将sdb5 sdb6 sdb7复制到新的sda5 sda6 sda7到不同的文件夹中。 应该有足够的空间,因为现在增加了一倍的空间…我希望 删除并重新分区SDB 将文件从sdb5 sdb6 sdb7移回到SDB 有没有人看到任何明显的问题,有任何指针,警告,build议等? 感谢大家。 再次,这需要脚本。 […]

grep和xargs:文件名太长

我试图删除所有不以__开头的文件。 这个 ls | grep -v "__" | xargs -0 rm 收益率: File name too long 。 任何帮助? 编辑: ls | grep -v "__" | awk '{print("rm \42"$0"\42")}' | /bin/bash 解决了这个问题,但我想知道为什么第一个是不正确的。 谢谢

在bash中用awk或类似的方法确定一些独特的行

我正在使用AWK来读取我有的自定义日志文件。 格式是这样的: [12:08:00 +0000] 192.168.2.3 98374 "CONNECT 192.168.2.4:8091 HTTP/1.0" 200 现在,我有AWK(来自bash)设置为读取整个日志,分析每一行,并抓住每一行包含“连接”的工作,但是,它并没有帮助我发现独特的客户端。 做到这一点的方法是以某种方式过滤它,以便它分析每行的这一部分:“CONNECT 192.168.2.4:8091 HTTP / 1.0” 如果有一种方法可以抓取日志文件中的所有行,那么将它们全部进行比较,只计算类似的行。 举个例子: [12:08:00 +0000] 192.168.2.3 98374 "CONNECT 192.168.2.6:8091 HTTP/2.0" 200 [12:08:00 +0000] 192.168.2.3 98374 "CONNECT 192.168.2.9:8091 HTTP/2.0" 200 [12:08:00 +0000] 192.168.2.3 98374 "CONNECT 192.168.2.2:8091 HTTP/2.0" 200 [12:08:00 +0000] 192.168.2.3 98374 "CONNECT 192.168.2.9:8091 HTTP/2.0" 200 在这种情况下,我需要的答案是3,而不是4.因为2行是相同的,所以只有3个独特的行。 我需要的是用AWK自动完成这个任务。 如果任何人都可以伸出一个很棒的手。

我如何删除旧的日志文件?

我想弄清楚如何删除旧的日志文件,我使用Centos 6.5,并在我的/var/log我看到这些旧的日志文件 messages messages-20150802 messages-20150802 在/var/log/httpd目录中也是一样的 access_log access_log-20150802 access_log-20150809 access_log-20150816 access_log-20150823 我需要删除以数值结尾的旧文件,但保留一次主文件。 我可以用什么命令来做到这一点。 先谢谢了

sed php.ini memory_limit

以下工作很好: phpmemory_limit=256M #or what ever you want it set to sed -i 's/memory_limit = 16M/memory_limit = '${phpmemory_limit}'/' /etc/php5/apache2/php.ini 如果memory_limit设置为16M,但是我发现在某些发行版中它不默认为16M,而是默认为32M。 所以我的问题是如何让我的SED帐户,并取代任何数字是$ {phpmemory_limit}?

cpio VS tar和cp

我刚刚了解到cpio有三种模式:复制,复制和传递。 我想知道在拷贝和copy-in模式下cpio比tar有什么优点和缺点。 何时使用cpio以及何时使用tar? 传递模式下的cpio与cp类似的问题 感谢致敬!

逃脱! 在wget的密码参数中

我试图执行这样的事情: wget –user=foo –password=bar! url 那! 在密码是造成问题。 我已经尝试用\来转义它,如 –password=bar\! 我试过封装在单引号和双引号中。 我把密码放在一个单独的文件中,然后尝试 –password = cat pass.txt 每一次,我得到一个403禁止。 使用-d,我看到SSL握手成功。 在Windows命令行上,该命令起作用。 我的假设是我需要逃避! 不同,但我不知道怎么回事。

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.