Articles of shell

用于通过电子邮件发送输出或日志的Shell脚本

我想知道是否有可能通过使用谷歌(或任何其他SMTP服务器)通过电子邮件得到我的备份脚本输出或其任何错误。 我不想在本地机器上安装邮件服务器。 我应该使用什么脚本或工具来提供此function?

没有密码的Rsync和不同的端口到rssh shell

我正在尝试没有密码的Rsync使用rssh shell ssh-keygen 和 ssh-copy-id -i /root/.ssh/id_rsa.pub '-p 12345 user@example' 但我无法得到以下消息 This account is restricted by rssh. Allowed commands: rsync If you believe this is in error, please contact your system administrator. 并且因为在rssh shell中唯一的工作命令是rsync,但是我怎样才能让rssh shell在没有密码的情况下工作呢? 谢谢

shell脚本+在脚本PATH中添加标准输出

通常,如果我们想将脚本输出redirect到文件,我们只需要做 /etc/create_connection.sh > file.debug.txt 要么 /etc/create_connection.sh | tee –a file.debug.txt 但是我想要的是在脚本里面添加/etc/create_connection.sh> file.debug.txt,但是我不确定它是否可行以及如何? 所以当我跑步的时候 /etc/create_connection.sh 我需要所有的标准输出将写入file.debug.txt 所以我需要在我的脚本中添加什么?

我怎样才能recursion删除旧文件和修剪结果空目录?

我们使用AIX服务器来存放嵌套目录结构中成千上万个小文件。 我试图编写一个脚本,recursion删除旧文件,然后删除包含的目录,如果这是目录中的最后一个文件。 举例来说,假设任何超过60天的文件都是“旧的”。 这听起来很简单,但我已经环顾一下,找不到解决办法。 是否有一些find和它的标志的组合,也许用rmdirpipe道,将完成上述?

在PowerShell中从csv文件创build用户

这是我第一次在PowerShell中从csv文件创build用户。 我正在使用我观看过的教程中的代码,这是在video上演示时的工作,但是,我无法使其工作。 $ou=[ADSI] "LDAP:/…" $dataSource = import-csv ".." foreach($dataRecord in $dataSource) { $cn = $dataRecord.cn $sAMAccountName = $dataRecord.sAMAccountName $givenName = $dataRecord.FirstName $sn = $dataRecord.LastName $displayName = $sn + ", " + $givenName $userPrincipalName = $givenName + "." + $sn + "@nuggetlab.com" $newUser = $ou.Create("user", "cn=" + $cn) $newUser.Put("sAMAccountName", $sAMAccountName) $newUser.Put("userPrincipalName", $userPrincipalName) $newUser.Put("displayName", $displayName) $newUser.Put("givenName", $givenName) […]

将作业调度器的默认shell更改为/ bin / bash,就像在CRON中一样

有没有办法改变atd作业调度服务使用的初始shell? ESP。 在Ubuntu中。 at默认情况下,在每个已部署产品的Linux和Solaris上使用/bin/sh 。 GNU的crontab可以让你select将SHELL=/bin/bash设置为内联/不调用具有自己的shebang行的脚本的默认值。 我知道可以做 at teatime <<< 'bash -c "stuff-better-run-on-bash" ' 但是这样的解决方法带来了其他问题。

如何使用随机生成的目录名称从归档中解压单个文件?

我正在尝试编写一个脚本,它将从github下载一个tarball ,并从中提取一个文件。 然而,tarball里面的顶级目录里面有一些随机的字符,我认为当repo / tarball被更新时,它会发生变化,使得难以可靠地指定我想要提取的文件的path。 这工作: wget https://github.com/paulp/sbt-extras/tarball/master tar –strip-components=1 -xf 'paulp-sbt-extras-d6c7222.tar.gz' 'paulp-sbt-extras-d6c7222/sbt' 但是我想要这样的东西: wget https://github.com/paulp/sbt-extras/tarball/master -O sbt-extras.tar.gz tar –strip-components=1 -xf 'sbt-extras.tar.gz' '[generic tld placeholder]/sbt' 基本上我想用一般的东西replace所有随机生成的字符,所以我不必随意改变字符就编辑脚本。 我想把tar输出写成标准输出,然后用pipe道input一些可以抓取sbt文件并丢弃其余部分的东西,但不知道使用什么工具: wget https://github.com/paulp/sbt-extras/tarball/master -O sbt-extras.tar.gz tar –strip-components=1 -xf 'sbt-extras.tar.gz' -O – | [grab the sbt file, write it, and discard everything else] 有任何想法吗?

脚本Sh VPN VPN

我安装了Shrew客户端以连接到思科VPN。 (侧面说明:任何连接都是暴风雨,我花了几个小时试图让它工作,我安装了2分钟之内就跑了。 无论如何,我可以连接就好,它的工作原理。 我需要做的是安排连接。 例如,我希望每天一次启动shrew,自动连接到vpn,然后运行一个SQL脚本。 一旦脚本完成,我想sh to离线VPN。 到目前为止,我有以下几点: "C:\Program Files\ShrewSoft\VPN Client\ipsecc.exe" -r ClientSite -u MyUser -p MyPassword -a 运行时,Shrew连接并启动VPN接口。 但是,直到有人点击“断开”button,该行才会返回。 想法?

如何将一行添加到configuration文件中的特定节?

我的configuration文件server.conf具有以下格式 [general] setting1=sdfdsf setting2=asdfadsf [ssl] setting1=sadfsdf setting2=sdfadsfkljasdf 如何使用bash脚本将其他设置添加到“常规”节中?

用单独的telnet会话打开多个gnometerminal的脚本

我只是好奇,如果这是可能的。 我正在和dynagen / qemu(CCIE培训)合作,并希望能够运行脚本“x”为我打开10个窗口,所有这些窗口都被telnet到预定义的端口。 IE: 新的gnometerminal打开 – > telnet localhost 2001 新的gnometerminal打开 – > telnet localhost 2002 新的gnometerminal打开 – > telnet localhost 2003 新的gnometerminal打开 – > telnet localhost 2004 等等, 我已经做了我goohlin公平的份额,似乎无法拿出一个直接的答案。 谢谢您的帮助 :) 编辑:这是现在它是如何听: root@NiXToP:/home/***# netstat -na |grep 2001 tcp 0 0 0.0.0.0:2001 0.0.0.0:* LISTEN root@NiXToP:/home/***# netstat -na |grep 2002 tcp 0 0 0.0.0.0:2002 0.0.0.0:* […]