我想将LVM逻辑卷布局克隆到另一个主机(=创build具有相同大小的卷)。 有没有人知道这个解决scheme? 我知道我可以执行像这样的事情: sudo LC_ALL=C lvs -o lv_name,lv_size,vg_name –units M –noheadings –separator '|' –nosuffix | LC_ALL=C awk -F \| '{ printf("lvcreate -n %s -L %.0fM %s\n",$1,$2,$3) }' 生成命令在另一台主机上执行。 但是有没有更多的“标准”方式来执行这样的任务? 我浏览了LVM手册页,发现了vgcfgexport和vgexport 。 首先会导出所有的元数据,包括像PV UUID这样的东西,第二个元素只是用来移动卷组,但是这不是我要找的东西。
我正在编写一个shell脚本,并希望在参数中传递多个选项。 有没有可能像使用getopts那样做? 要求示例: ./shell.sh -d db1 db2 应该将值db1和db2作为-d选项的值传递。
我写了一个rsync脚本,它也检查脚本进程运行了多长时间。 这是相关部分: time=$(ps -p $processid -o etime= | awk -F: '{print $2}') # number of seconds the process is running. if [ $(ps -ef | grep $(basename $0) &>/dev/null && echo $?) -eq "0" ] && [ "$time" -gt "5" ]; then # Check if there's a running process with the script name which is […]
我试图让这些脚本在Java应用程序需要以用户foobar运行的环境中工作,而不foobar是以root还是foobar启动的。 所以这些是我对init脚本的修改,它是从init.d符号链接的: RUN_USER=foobar USER_NAME=$(id –user –name) START_SCRIPT=/opt/app/scripts/start ARGS="" start() { if [ "$USER_NAME" != "$RUN_USER" ]; then PID=$(su $RUN_USER -c $START_SCRIPT $ARGS > /dev/null 2>&1 & echo $!) else PID=`$START_SCRIPT $ARGS > /dev/null 2>&1 & echo $!` fi } 而我的/opt/app/scripts/start脚本如下所示: exec java -jar /opt/app/app.jar > /dev/null 2>&1 & echo $! 为了使init脚本工作, PIDvariables需要被正确设置,但是它被设置为su命令的PID 。 关于做这个工作有很多问题,但是没有一个解决scheme适用于我。 我知道> […]
cat /etc/passwd (最后一行): tomee:x:990:987::/home/tomee:/bin/false 我需要做一个init.d脚本来运行Tomcat EE,比如service tomee start 。 所以我有两个问题: 我怎样才能执行命令(从根)作为一个tomee用户(没有bashlogin)? sudo su – tomee -c“一些命令” 不起作用。 sudo – tomee -s "/bin/bash" -c "some command" 作品,但我觉得它看起来很可怕。 据我所说,我打算使用它/etc/init.d/tomee服务bash脚本,这里的问题我需要JAVA_HOME环境variables之前执行上述命令。 (那么如果用户是系统而没有shell,怎么办呢?) 我也有一个问题(警告), couldn't change dir to /home/tomee 。 是的,它不存在,但我创build了一个系统的用户。 我正在使用一个RHEL(不是最新的,所以没有systemd)。 如何在RHEL6上运行TomEE作为服务? 更新#1: [root@localhost httpd]# su tomee /usr/local/tomee-webprofile-1.7.2/bin/startup.sh [root@localhost httpd]# 没有结果。 只要 su – tomee -s "/bin/bash" /usr/local/tomee-webprofile-1.7.2/bin/startup.sh 工作,但我不想看到这个可怕的 […]
承认一个文件系统安装在〜/ FS /(这是它的根目录),我怎样才能检查其体系结构没有chroot? 我尝试过使用dpkg –root=~/FS/ –print-architecture但它仍然打印出我的根文件系统(“/”)的体系结构。 我已经阅读了dpkg-architecture手册页,但没有办法指定到根文件系统的path。 我需要一些通用的,因为我需要它为一个bash脚本,而不仅仅是一个文件系统。 对我来说,一个不洁的select是使用: dpkg –root=~/FS/ -l | grep [[:space:]]passwd[[:space:]] 然后检查它的体系结构,因为我知道(现在)我必须检查所有文件系统上的passwd软件包。 任何更好的命题? 另外请注意 ,我尝试与dpkg的简单性,我并不强制需要一个dpkg命令,但我需要的东西快。 亲切的问候 :-)
有没有办法让一个用户访问(www数据是准确的)只能访问“docker检查”? 任何工作解决scheme都可以接
我将如何去压缩一个目录列表到单独的档案? 我已经阅读了解决scheme ,只是存档在一个给定目录中的所有目录,但有一些我想跳过。 也许更简单的方法是定义我不想存档的目录。 这是为了备份的目的,所以如果增量归档可以很容易地实现,这将是一个巨大的优势。 不幸的是rsync不适合我。 另外一个脚本,如AutoMySQLBackup,但目录将是一个伟大的工资污垢对我来说。
我已经devise了我的bash提示符,像这样\u@\h> 当我现在使用adduser创buildUser example时,我的提示看起来像example@host>但是当我使用useradd创build用户时,我的提示看起来像\u@\h> PS1: \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]\$ \[\033[00m\] PS2: > PS3:空的 PS4: + 任何想法如何解决这一问题?
我有以下几点: test.sh . Foo.sh Foo.bar Foo.baz Foo.blah 和 Foo.sh function Foo.bar() { echo 'I am a bar!' } function Foo.baz() { echo 'But, I am a baz!' } function Foo.error() { # I should suppress the 'command not found' error based on the pattern '^Foo\.([^:]+):' # If the pattern is matched, I'll need to perform […]