Articles of bash

符号链接到根目录中的文件夹

我已经在虚拟主机中创build了一个ftp帐户,并添加了一个符号链接到位于根目录的文件夹,例如 [root@server myvhost]# pwd /home/myvhost [root@server myvhost]# ll ….. lrwxrwxrwx 1 myvhost myvhost 16 Oct 27 15:03 myfolder -> /root/myfolder/ ….. / root / myfolder /内部的所有文件都包含在本机中,但是在尝试将file upload到此文件夹时遇到问题。 这是根本不可能的,因为权限或我缺less的东西。 提前致谢

mysql创build数据库和用户脚本

改写的问题: HOMEDIR="ftpuser" REMOTEIP="1.1.1.1" MYSQLPASS="password" Q1="DROP USER "$HOMEDIR"_shop;" Q2="DROP DATABASE "$HOMEDIR"_shop;" Q3="CREATE DATABASE IF NOT EXISTS "$HOMEDIR"_shop;" Q4="GRANT ALL ON "$HOMEDIR"_shop TO '"$HOMEDIR"_shop'@'localhost' IDENTIFIED BY '$MYSQLPASS';" Q5="GRANT ALL ON "$HOMEDIR"_shop TO '"$HOMEDIR"_shop'@'anotherip' IDENTIFIED BY '$MYSQLPASS';" # Need to grant permissions from another server as well Q6="FLUSH PRIVILEGES;" SQL="${Q1}${Q2}${Q3}${Q4}${Q5}${Q6}" echo $SQL echo " " ssh -p 8899 […]

从远程FTP服务器删除X天以前的文件

我的备份存储在远程FTP服务器上。 我正在寻找一种通用的方法来清理FTP目录使用bash或python。 任何帮助,将不胜感激。 编辑:我只有FTP访问服务器。 我需要通过FTP远程login来清理目录

如何通过浏览器链接执行bash shell脚本

我写了一个bash脚本,定期检查一个新添加的.ear文件的目录,并将它们复制到相应的JBoss服务器的deploy目录中。在复制之前,它会检查JBoss是否正在运行,如果是,则停止它。复制文件后,它删除旧的.ear文件(如果有的话),并启动JBoss。 我正在尝试通过网页执行此脚本。 即提供一个链接到用户,点击哪个,整个过程得到执行。到目前为止,我无法得到所需的结果,尽pipe手动执行它的工作。 我在http日志中收到以下错误: 警告] [client 127.0.0.1]超时等待CGI脚本输出/var/www/cgi-bin/auto.sh,referer:http:// localhost / 如果有人能够阐明如何去做,我将不胜感激。

Linux / Sendmail的一个class轮有大型目录的麻烦

无论出于何种原因,垃圾邮件发送者都find了通过侧面系统中继邮件的方法。 这个漏洞已经被解决了。 问题是我的/ var / spool / mqueue目录中有大量的电子邮件(至less100,000+),我仍然需要过滤。 我停止了sendmail,并将mqueue目录的内容移动到新的位置… 从那以后,我一直试图用下面的一个class轮来帮忙: for x in `find . -type f -name “qf*” | xargs grep -l "foo" | cut -b3-`; do y=d`echo $x | cut -b2-`; mv $x /root/spammessages; mv $y /root/spammessages/; done 这个想法是: 1)检查QF文件的唯一垃圾邮件相关的标题内容(foo)。 2)findDF对应文件 3)将df和qf文件移至隔离区域。 问题是,查询正在运行,但不希望移动任何文件。 如果我跑顶,我会偶尔看到xargs和grep使用一些资源,但不会超过1%-2%。 此外…当我检查spammessages文件夹,我没有看到任何文件。 如果我在一个较小的消息子集上运行相同的命令,它似乎工作正常。 这里有一些Linux文件的限制吗? 有没有方法来优化单线? 谢谢。 -M

当你在linux注销时,后台进程会退出吗?

[root@~]# ./file.sh & 我不知道$! 如果我立即注销,将终止?

如何用/ bin / false shell执行

我试图设置每个用户fastcgi脚本,将运行每个不同的端口和不同的用户。 这里是我的脚本的例子: #!/bin/bash BIND=127.0.0.1:9001 USER=user PHP_FCGI_CHILDREN=2 PHP_FCGI_MAX_REQUESTS=10000 等等… 但是,如果我添加用户/ bin / false(我想要的,因为这将是像共享主机,我不希望用户有shell访问),该脚本运行在1001,1002'用户'正如我的谷歌search显示,这可能是一个安全漏洞。 我的问题是:是否有可能允许用户执行shell脚本,但禁用它们,所以他们不能通过SSHlogin?

多个用户使用脚本通过无密码SSH访问远程服务器

我目前正在build立一个绑定到Active Directory中的Linux机器。 这个盒子将允许用户使用他们的AD用户名和密码进行SSH连接以收集信息(框A)。 问题是我试图在/etc/bash.bashrc中创build一个函数,所以用户所要做的就是键入“get_info”,例如,函数将SSH连接到远程机器(Box B)运行一个命令并输出信息回到用户。 这个问题是,我已经生成了框A的RSA密钥,将其添加到框B authorized_keys,它工作正常。 我遇到的问题是,如何为当前用户和任何login到框A的新用户设置一次。 有没有比我目前做的更好的方法。 基本上我只需要连接到远程盒子,运行一个命令,输出信息返回给用户,就是这样。 我怎样才能允许新用户通过脚本连接到远程盒,而不必为他们生成RSA密钥。 get_info函数将被提供一个值“get_info 012345”并返回结果。

修复启动tomcat时出现tomcat6错误信息“/ bin / bash already running”?

我有一台Ubuntu 10.04机器,它上面有tomcat6。 当我用/etc/init.d/tomcat6 start tomcat6时/etc/init.d/tomcat6 start * Starting Tomcat servlet engine tomcat6 /bin/bash already running. 并且服务器无法启动。 不幸的是,在/var/log/tomcat/catalina.out中没有任何东西可以帮助debugging这个问题。 使用一些巧妙摆放的echo语句,它似乎是从/etc/init.d/tomcat6开始的: start-stop-daemon –start -u "$TOMCAT6_USER" -g "$TOMCAT6_GROUP" \ -c "$TOMCAT6_USER" -d "$CATALINA_TMPDIR" \ -x /bin/bash — -c "$AUTHBIND_COMMAND $TOMCAT_SH" 我在这个脚本中唯一改变的是TOMCAT6_USER=root 。 在servers.xml中,我唯一改变的是来自端口8080的<Connector port="80" protocol="HTTP/1.1" 。我已经尝试通过首先删除所有东西来重新安装包sudo apt-get –purge remove tomacat6然后sudo apt-get install tomcat6但是这并没有解决这个问题。 我也重新启动了服务器多次希望有一些魔术。 一切工作,直到我重新启动我的服务器。 有任何想法吗?

从dmesg行获取接口名称

我有一些像[17.440000] eth0:XYZCOMPANY ABC4353 802.11无线控制器 [17.540000] eth1:XYZCOMPANY ABC4353 802.11无线控制器 eth0:XYZCOMPANY ABC4353 802.11无线控制器[17.640000] 我需要在shell脚本中将eth0,eth1,eth2变成一个variables。 正如你可以注意到XYZCOMPANY ABC4353的所有其他行保持不变。但接口名称不断变化。 我需要将这些接口名称变成一个variables。 谢谢!