我经常做的事情,我循环通过服务器列表采取一些行动。 例如: for s in `cat servers.txt` ; do echo; echo $s ssh $s 'do something' done 我想知道(从shell的angular度来看)是否有比cat servers.txt更简单的方法 是的,我知道像mcollective,capistrano等工具 – 我经常这样做,以解决mcollective问题:-)
有没有办法find谁login到networking上的另一台Linux机器给定的机器名称,而不是只是sshing到该机器和运行who ? 我宁愿直接在Python中的方式,但通过一个命令就可以了。
我在下面的“ lxadmin ”目录中有许多.conf文件 ,并怀疑文本“ tanguay.info ”在其中的某个地方。 我做这个命令: cat /etc/httpd/conf/lxadmin/* | grep "tanguay.info" 它告诉我: cat: /etc/httpd/conf/lxadmin/forward: Is a directory Include /home/httpd/tanguay.info/conf/lxadmin.tanguay.info 所以我知道它在哪里,但它不告诉我在哪个文件中 。 我怎样才能告诉我文本在哪个文件?
我需要运行这个: sudo adduser …
任务:创build一个每晚执行一次bash脚本的Cronjob。 bash脚本应该做一个mongoDB备份并将其推送到Git Repo。 所以我通过crontab -e命令创build了一个作为root用户的cronjob : #!/bin/bash SHELL=/bin/bash USER=root PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/root HOME=/root 0 2 * * * /path/script.sh > /path/script.log 这是应该执行的脚本 : BAK="/path" #MONGO="/usr/bin/mongo" #MONGODUMP="/usr/bin/mongodump" #GIT="/usr/bin/git" echo "starting backup" echo $BAK /usr/bin/mongodump –username=myusername –password=mypassword –db=mydatabase –out=$BAK$ echo "backup created" /usr/bin/git add . /usr/bin/git commit -m "backup from `date +'%Y_%m_%d'`" echo "committed" /usr/bin/git push -u origin […]
我支持两个小组。 我有一个脚本,我想保持在一个。 我有一个testingfunction的麻烦: convtype=./Sample*/ if [[ -n convtype ]]; then 它对一些用户而言运行良好,但对其他用户来说却不是。 我注意到的一件事情是,对于从PC运行它的人来说,根据目录中的内容返回值或空string,所以我的if语句将计算为true或false。 对于MAC用户,它总是评估一个string,因此总是如此。 如果我将这两行改为: if [[ -d Sample*/ ]]; then 如果适用于MAC用户,而不适用于PC用户。 我正在寻找一种方法来告诉哪种types的机器正在运行的脚本或不同的方式来产生/testing将工作的variables不pipe。 build议最赞赏。
我试图让我的Ubuntu服务器上的脚本在这里工作,通过cron备份SVN仓库。 #!/bin/bash BACKUP_DIR="/backup/repository" REPOSITORY_DIR="/home/svn/repository" #search in repository folder to find all the repository names ls -Al –time-style=long-iso /home/svn/repository/ | grep '^d' | awk '{print $8}' | while read line do if [ ! -d $BACKUP_DIR"/"$line ]; then mkdir $BACKUP_DIR"/"$line fi #Getting revision number REVISION=`cat $REPOSITORY_DIR"/"$line"/db/current" | awk '{print $1}'` #Archive last backup tar -czf $BACKUP_DIR"/"$line"-last.tar.gz" […]
我想在我的shell中使用vi( set -o vi可以做到这一点),而不是emacs,但我不想把它放到bash启动脚本中。 为什么? 因为我担任validation工程师,而且我正在使用多个用户帐户,这些用户帐户也经常重新安装。 更改默认configuration文件也不能回答,因为有些软件会创build自己的主目录(独立于默认configuration文件)。 编辑:我知道你给了我几种方法如何在启动或任何时候做到这一点,但我想改变它在系统中的某个地方,并将其作为默认值,这是可能的吗?
我尝试这样做: cd ~git\t \ t是制表符,我期望它被bash_completion扩展为: cd ~gitolite/ 但事实并非如此。 我已经在/etc/bash.bashrc中取消注释了以下行并注销并返回。 # enable bash completion in interactive shells if [ -f /etc/bash_completion ] && ! shopt -oq posix; then . /etc/bash_completion fi 是什么赋予了?
我有一个MaraDNS服务器,需要logging所有查询它的DNS服务器的IP地址。 随着日志logging的详细出现,它会输出这个到stdout,但是当我尝试将stdout(和stderr)redirect到一个日志文件时,似乎并没有实时捕获它,并在写入到stdout时忽略了一些输出。 有任何想法吗?