我有很多代码需要daemonize打印到标准输出。 我正在考虑使用下面的shell脚本来创build一个命名pipe道,所以我可以禁止一个进程,同时将其输出redirect到pipe道。 #!/斌/庆典 ############### 3 #创build一个名为pipename的pipe道,将redirect到文件名并在Cc上旋转日志 ############### 3 如果[$#-ne 2]; 然后 echo“USAGE:./$0 pipename filename” 退出-1 科幻 pipename = $ 1; 如果[-p $ pipename]; 然后 rm $ pipename; 科幻 origname = $ 2.login 文件名= $ 16 改名() { newfilename =“$ origname -`date +%s`” mv $ origname $ newfilename nohup nice -n 20 tar -czvf $ newfilename.tar.gz […]
我正在写一些Ruby在命令行上使用,但shell会干扰太多 – 有没有办法closures整行的插值? 我知道我可以逃脱某些人物,但我正在寻求一个全面的禁令。 例如,如果以空格开始,我已经将shell设置为不添加到历史logging中。 任何帮助,这是非常感谢。 我不认为我自己清楚,我的道歉。 一个例子: ruby -pi -e 'gsub(/(find)(this)/, "#{$1} #{$2}")' shell不会插入这些$数字,因为它被包裹在单引号中,但是有时代码需要包含引号。 Ruby在这方面相当有帮助,你可以用其他特殊字符来改变引号,但是这一切都开始变得有点混乱,并且不会像上面那样简单。 我想要的更像是: %% ruby -pi -e 'gsub(/(find)(this)/, "#{$1} #{$2}")' 其中%%将在该行的其余部分由shell进行内插。
我创build了符号链接到/var/tmp/platform.bash文件 – /etc/rc3.d/platform.bash ln -s /var/tmp/platform.bash /etc/rc3.d/platform.bash 脚本存在于/ var / tmp下: -rwxr-xr-x 1 root root 58442 Aug 30 08:49 platform.bash 来自/etc/rc3.d的视图: lrwxrwxrwx 1 root root 31 Aug 30 06:33 S99platform.bash -> /var/tmp/platform.bash 我的目标是重启后运行platform.bash(在solaris 10操作系统上) 从某种原因的脚本platform.bash不能运行后重新启动? 请通知我需要检查以validation问题? 我的脚本(platform.bash) #!/bin/bash echo test > /var/tmp/log.txt
在OSX上的以下命令将更改打开目录(Apple的LDAP)密码。 $是提示符: $ dscl -u diradmin -P 'password' /LDAPv3/127.0.0.1 passwd /Users/username newpassword 我很想把它变成一种交互式的shell脚本(我们称之为“odpasswd”),它首先提示pipe理员为他们想要更改密码的用户名,然后input密码,如下所示: $ odpasswd $ Username you'd like to change passwords for? johnd $ New Password? secretpassword $ Done! Password changed successfully for username 'johnd' to 'secretpassword' 我不是足够的shell脚本专家知道如何把它变成这样的东西。 你的帮助总是非常感谢! 谢谢!
我在CentOS中使用了bash shell,版本… $ uname -a Linux mydomain.com 3.2.29-48.63.amzn1.x86_64 #1 SMP Sat Sep 15 01:43:12 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux 在我的shell脚本中,我想获得一个string的一部分,特别是最后一个短划线(“ – ”)之前的所有内容。 所以如果我的string是“my-importer-1.0.ear”,我想提取“my-importer”。 但是,下面的expression prefix=${fname%-*} 只是返回“我的”,因为它与第一个短划线相匹配。 如何调整expression式以匹配所有内容,直到最后一个短划线?
#!/bin/sh #myVar=`date`#case 1 #myVar=`cat /dev/stdin`#case 2 myVar=($(< /dev/stdin)) #case 3 echo $myVar exit 2 案例1工程案例2和3不起作用。 当我testing2或3; 没有输出,脚本也不会退出 我最终要求的是从后缀pipe道写入的stdin中读取数据
首先,我不确定是属于StackOverflow还是在这里,但是这个数字更适用于服务器pipe理。 我们每天都有一个.tar备份文件作为离线备份服务器,这是我们日常处理的一部分。 这些是相对较大的文件,平均在25-30 Gig之间。 因此,我们只能保持约2周的备份。 每个星期五(是的,这是星期五),一个将ssh到远程的服务器,OpenSuse 12.1,并手动删除前一周的文件,并保持当周的数据。 例如,文件中有一个与BACKUP<YYYYMMDD><Time stamp>类似的命名scheme。 BACKUP20121022268498.tar BACKUP20121022268498.log BACKUP20121023268498.tar BACKUP20121023268498.log BACKUP20121024268498.tar BACKUP20121024268498.log BACKUP20121025268498.tar BACKUP20121025268498.log BACKUP20121026268498.tar BACKUP20121026268498.log BACKUP20121029268498.tar BACKUP20121029268498.log BACKUP20121030268498.tar BACKUP20121030268498.log BACKUP20121031268498.tar BACKUP20121031268498.log BACKUP20121101268498.tar BACKUP20121101268498.log 等等。 大多数情况下,我会在这个例子中使用命令rm *20121022* 。 有时候,就像在这个例子中,即使能够使用rm *201210[22-26]* 。 做一个快速的谷歌search浑水给我。 我基本上是试图设置这个,让一个实习生可以login,并从用户directoy运行脚本。 是否有捷径可寻? 我从哪里开始? 我很熟悉在其他语言中使用date函数,但是从哪里开始,我似乎处于一个不知所措的状态。 我不做许多Bash脚本。 谢谢。
有没有办法在terminal输出中摆脱转义码? 也就是说,即使脚本正在发送该代码,它们被terminal忽略,文本显示为不带颜色,粗体等。 我需要在HTML页面上显示terminal输出。 现在我使用javascript来删除转义码,但它变得笨重,因为我接收到字符输出,并且必须等到接收到的所有内容更新它,导致奇怪的效果。
我试图在VMware上的虚拟Debian服务器上安装ncurses,但不知何故,这是不成功的。 在注销控制台之后,我意识到我无法再login。 我不能使用诸如scp,WinSCP或SSH客户端之类的工具进入服务器。 当我尝试在getty控制台上login时,我收到下面的消息,并再次find自己的login提示符。 总之,我被locking在[虚拟]服务器之外。 这是一个生产服务器,因此重新启动它将是最后的手段。 我已经下载了一对夫妇的现场CD – 该死的小型Linux和Slitaz – 不幸的是无法检测到虚拟机硬盘。 更换虚拟机硬盘控制器会导致数据丢失吗? login as: saichovsky [email protected]'s password: Linux myhost 2.6.32-5-amd64 #1 SMP Wed Jan 11 14:00:43 UTC 2012 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. […]
当我尝试播放一些真正没有意义的文件时,我收到了一个错误。 我收到这个错误: mv: cannot move `thatDir' to a subdirectory of itself, `/usr/local/apache-tomcat-6.0.32/webapps/thatDir' 运行以下命令以replace/ webapps中已有的thatDir时: From /home/myUser/war_files/ mv thatDir /usr/local/apache-tomcat-6.0.32/webapps 我也尝试了一切: sudo mv /home/myUser/war_files/thatDir /usr/local/apache-tomcat-6.0.32/webapps 没有运气。 我有必要的权限做到这一点(加上我使用sudo),仍然没有。 之前我的办公室里的其他人已经完成了这个完全相同的操作(谁不在这里工作)。 我试着用googlesearch,甚至在serverfault上看到另一个问题,但是大家都说这个问题和这个问题上的评论一样:“也许有符号链接,你不知道。 这不是问题。 我尝试使用readlink -e查看目录(如其他票据中的注释所示),但没有涉及符号链接。 任何帮助,将不胜感激。 链接到与此相关的其他问题: 无法将文件夹移动到其自身的subdirectoy – 发生了什么事? 正如我在下面的评论回应中提到的,下面是重现此问题的步骤。 正如你将会看到的,链接不能为此负责(另外,我正在使用bash unix): mkdir /home/myUser/testOuter cd /home/myUser/testOuter mkdir test1 cd test1 mkdir moveMe cd moveMe touch testfile1.txt cd ../.. […]