我试图find所有直接在当前目录中并且比特定年龄更早的目录。 诀窍是,我只想考虑当前目录的后代的年龄,而不是recursion地search它们。 用法示例是每天备份文件 – 每天创build一个新目录,但放置在该目录内的文件保留其时间戳,并且通常较旧。 我希望能够清理旧的备份而不删除最近的快照中的旧文件。 它看起来像find可能无法做到这一点,你推荐什么unix工具(或他们的组合)?
我编写了各种脚本来启动Java服务器应用程序,这些应用程序通常在closures之前运行24小时(通过调用具有不同参数的相同脚本)。 该脚本依赖于文件中定义的环境variables: ~/<user>.env ,它来自.bashrc 。 从命令行调用脚本时,这工作正常,但如果我想添加脚本作为crontab条目我遇到的问题,其中.bashrc不读。 我的问题:解决这个问题的最佳做法是什么? 我意识到我可以定义一个crontab条目,如: * * * * 1-5 /usr/bin/bash -c '. /home/myuser/myuser.env && /home/myuser/scripts/myscript.sh' …但这似乎很难看。 或者,我可以在每个脚本的开始处myuser.env ,但这将成为维护的噩梦。 任何帮助赞赏。
如果我做 su – -c 'mkdir bin' user1 然后我得到 su: /usr/bin/ksh: No such file or directory 因为在/etc/passwd中将用户shell设置为ksh ,并且未安装ksh 。 题 在这种情况下如何作为用户传输命令?
我必须通过删除每个文件名的前5个字符来重命名目录中的多个文件。 我怎样才能做到这一点我bash /壳? 我使用的是Ubuntu 11.10。 谢谢。
我正在为ldap制作备份脚本。 我希望将错误转移到/ var / log中的文件,并将输出转到备份文件夹中的另一个文件。 目前我正在redirect到临时文件,然后将临时文件发送到日志。 我宁愿做一个class轮,虽然… /usr/bin/ldapsearch -x -LLL -b "dc=contoso,dc=com" "(objectclass=*)" -h ldap.server -v 2>>/tmp/ldaptmp.err | gzip -c > /mnt/backups/ldap/`date +\%Y\%m\%d`.ldif.gz || logger -t ldapbackup -p local6.err error exit $? cat /tmp/ldaptmp.err | grep -v "ldap_initialize( ldap://ldap.server )" | grep -v "filter: (objectclass=\*)" | grep -v "requesting: All userApplication attributes" >$ERR_LOG rm -f […]
我正在编写一个bash脚本来分析我们networking上的邮件日志,这个邮件日志主要是后缀框,但如果可能的话,还想在分析中包含MS Exchange日志 。 有没有办法从Linux的命令行远程复制文件的Windows机器? (注:我有窗口框的pipe理员权限)
假设在当前目录下有多个子目录,其中一个被称为A. 如何删除除B之外的所有子目录?
我想写一个bash或perl脚本来在我的基于debian的机器上安装一些软件包。 我希望它是这样的: aptitude install package1 aptitude install package2 但是,我不知道如何在提示中通过脚本自动说“是”,以确认您想要安装该软件包。 有人可以给我一个Perl和bash的例子吗? 格拉茨!
我把这个脚本从各个地方放在一起。 我所希望的是,一旦运行,它将执行以下操作: 暂停端口80和443的所有“新”HTTPstream量 – 只是“暂停”他们,不要给出任何错误 当所有“进行中”请求完成时,优雅地重新启动haproxy 暂停httpstream量并像往常一样继续业务。 这是如何运行? 我错过了什么? 我们有数千个基于ip的acl规则,存储在一个haproxy引用的文件中,我们需要每分钟重新加载几次。 #!/bin/sh # hold/pause new requests iptables -I INPUT -p tcp –dport 80 –syn -j DROP iptables -I INPUT -p tcp –dport 443 –syn -j DROP sleep 1 # gracefully restart haproxy /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf $(cat /var/run/haproxy.pid) # allow new requests to come […]
大多数情况下,命令的输出以换行符结束。 但是有时候它不会,所以下一个shell提示符和输出一起被打印在同一行。 例: root @ hostname [〜]#echo -n hello helloroot @主机名[〜]# 我一直觉得很烦人 现在,我可以在PS1variables的开头添加一个“\ n”,但是大部分时间会打印一个额外的行,我不需要。 是否有可能知道最后一个命令的输出是否以换行结束? 解: (感谢丹尼斯) PS1='$(printf "%$((`tput cols`-1))s\r")\u@\h [\w]\$ '