我有一个读取ssl-cert权限的目录: root@yellowstone:~/certs# ls -lah total 28K drwxr-x— 2 root ssl-cert 4.0K Oct 23 16:58 . drwx—— 7 root root 4.0K Oct 23 17:20 .. -rw-r–r– 1 root ssl-cert 2.0K Oct 23 16:58 certificate1.crt -rw-r–r– 1 root ssl-cert 2.0K Oct 23 16:58 certificate2.crt -rw-r–r– 1 root ssl-cert 2.0K Oct 23 16:58 certificate3.crt -rw-r—– 1 root ssl-cert […]
我试图远程执行本地脚本使用SSH现在这里是我如何做到这一点: function remoteRun{ if [ $# -ls 2 ]; then usage() exit 1 fi ssh $1@$2 'bash -s' < $3 } remoteRun user host script.sh 现在我正在尝试做同样的事情,但将一些parameter passing给script.sh脚本。 你认为这样的事情会按预期工作吗? remoteRun user host script.sh all step 如果没有,当你需要在方框A上生成一个脚本,但是在方框B中执行它时,你最好的做法是什么?
我写了一个小脚本来处理我的zfs备份。 当我手工运行它,它运作良好: /root/bin/zfs-backup -k 7 -p zfs-auto-snap_daily -r vm/containers tank/backups 但是像这样在cron中运行它会抛出一个错误“文件系统”vm / containers“不存在”。 30 0 * * * root /root/bin/zfs-backup -k 7 -p zfs-auto-snap_daily -r vm/containers tank/backups
我写了一些脚本,在linux上的特定接口上设置路由(CentOS 6.0),并把它们放到Networkmanager脚本path(/etc/Networkmanager/dispatcher.d)中,前缀号码最高(我也给了执行权限)。 这是我的脚本: #!/bin/bash if [[ "$1" == "eth1" ]] && [[ "$2" == "up" ]] then ip route add 192.XX.XX.0/24 dev eth1 src 192.XX.XX.XX table eth1 #logger scrip run. fi 但是当eth1启动时,我在系统日志消息列表上看到这个错误: localhost nm-dispatcher.action: Script '/etc/NetworkManager/dispatcher.d/99-eth' exited with error status 127. 谁能说哪里是我的错误?
我有一个自动化的部署者脚本,它将git提交到某个分支,编译并上传存档的二进制对象到云(S3)。 稍后,脚本login到EC2实例并下载档案并执行/启动项目/服务器。 到目前为止,这是完美的工作。 最近,我遇到了磁盘空间问题。 由于我也存储日志和维护当前/以前的工作提交,我的目录结构是这样的: /path /current/ <- symlink /prev/ <- symlink /HASH00001/ /HASH00002/ /HASH00003/ /HASH00004/ /HASH00005/ /…/ /…/ /HASH0000n/ /some.log /some.log.1 /some.log.2.gz /… 为了维护起见,我想删除/path中所有的特定git commit的SHA值的子目录。 但是,有一个警告, current和prev符号链接指向的目录不应该被删除。 到目前为止,我正在手动在任何面临存储问题的机器上。 我更喜欢我的部署脚本来照顾这一步。 我正在使用ls命令并根据上次访问时间戳对结果进行sorting: ls -drt | head -n -4 并将xargs rm -rf传送给它。 我现在正在考虑修改它,以便只列出长度正好为40个字符的目录名称,然后删除目录。 符号链接到current和prev 。 我可以得到一些关于如何实现相同的指针!
我需要通过号码获取界面。 我的脚本: #!/bin/bash interfaces=/root/tt interfaces_with_numbers=/root/tt2 ls -1 /sys/class/net > /root/tt cat -n $interfaces > $interfaces_with_numbers cat $interfaces_with_numbers read number echo $number eth=`cat $interfaces_with_numbers | grep $number | awk '{ print $2 }'` if [[ -d /sys/class/net/$eth ]];then echo "You choose is: $eth" else echo "not found" fi 我有输出: 1 dummy0 2 eno1 3 enp4s0 4 […]
我写了一个生成无人值守GPG密钥的bash脚本,我查看了GPG的无人值守使用情况,并惊奇地发现'目前只能处理一个子密钥。 我无法find是否有一种方法来修改一个GPG键来添加第二个子键使用可用的无人参与的生成函数,或者如果我不得不手动添加子项我自己。 我试图在here documents使用here documents , here strings和每行一个input创build一个文件以及使用printf类似于下面: printf 'addkey' | gpg2 –edit-key '[email protected]' 没有这些解决scheme的工作: balthasar@magi:~$ printf 'addkey' | gpg2 –edit-key '[email protected]' printf 'addkey' | gpg2 –edit-key '[email protected]' gpg (GnuPG) 2.0.26; Copyright (C) 2013 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to […]
我有一些聪明的脚本,检查服务器的名称,并获得域名。 例如,我有服务器的名称:example.ru01。 我需要得到:example.ru我的scipt: #!/bin/bash hostname=example.com01 echo $hostname reg0="\(\([a-z0-9_-]*\)\|\([a-z0-9_-]*\.[a-z_-]*\)\)" domain=`expr match $hostname $reg0` echo $domain 没关系。 在输出我有: example.com01 example.com 但是,当我写第三层领域,我有输出: example.com.us01 example.com 所以,我需要另一个正则expression式。 我写了这个: reg0="\(\([a-z0-9_-]*\)\|\([a-z0-9_-]*\.[a-z0-9_-]*\.[a-z_-]*\)\)" 输出: example.com.us01 example.com.us 有用。 但是,当我写第二层域,我有输出: example.com01 example 所以…我可以写一个正则expression式两种types的域?
我有一个正在寻找邮箱path的shell脚本 result=`find /var/mailboxes -type d -name [email protected]` perl -pi -e 's/Folder-to-Remove//g' $result/subscriptions 但通过Dovecot Sieve执行它我得到一个错误消息: lmtp:错误:find:`/ var / mailboxes / 63':权限被拒绝 /var/mailboxes/63甚至不被[email protected] Shell脚本有权由其他人执行。
我有这个脚本循环遍历所有文件夹,并移动超过2年的文件。 我正在使用安装命令,因为它在目标path上创build必要的目录,然后删除源代码。 我想更改脚本使用mv命令,因为它比复制文件然后删除它快得多。 但我不知道如何得到没有文件名的path传递给mkdir -p命令? 我应该如何修改脚本? for d in *; do find "$d" -type f -mtime +730 -exec sh -c ' echo "moving $d/{}" && install -Dp "/data/Customer Files$d/{}" "/data/Customer Files Over 2 Years Old$d/{}" && rm -f "/data/Customer Files$d/{}"' \; done