如何自动化一些linux命令
我做过很多windows命令shell脚本编写,但我是linux的新手。是否有某种方法可以编写/自动执行以下命令,以便我所要做的就是(用windows术语)“运行批处理文件”来完成所有这些?以下是我的步骤,顺序如下:如何自动化一些linux命令,linux,ksh,Linux,Ksh,我做过很多windows命令shell脚本编写,但我是linux的新手。是否有某种方法可以编写/自动执行以下命令,以便我所要做的就是(用windows术语)“运行批处理文件”来完成所有这些?以下是我的步骤,顺序如下: 启动putty,选择主机名和端口,单击打开(也希望编写脚本/自动化第一部分) linux外壳/终端打开 我输入我的登录名和密码 我输入这个命令:sudo su-psoftXXX 我再次输入我的pwd并按enter键 我看到一个小小的cmdshell菜单和一个提示。我必须键入“1”
- 启动putty,选择主机名和端口,单击打开(也希望编写脚本/自动化第一部分)
- linux外壳/终端打开
- 我输入我的登录名和密码
- 我输入这个命令:sudo su-psoftXXX
- 我再次输入我的pwd并按enter键
- 我看到一个小小的cmdshell菜单和一个提示。我必须键入“1”并按enter键
- 光盘/
- 光盘日志
- cd-hr
- cd-DV
- cd应用服务
- 任先生*
- ls
有什么方法可以使这一切或其中的一部分自动化吗?谢谢。是的,您可以在linux中编写shell脚本。每个shell脚本都以
#!/bin/bash
<commands>
.
.
.
至于自动化第一部分,这可能有点棘手,我认为如果您首先以psoftXXX身份登录,您可以删除整个sudo su psoftXXX
希望这能对您有所帮助,这里有一个很好的资源可以帮助您开始编写shell脚本
是的。一旦你了解了这一点,你就会发现,与Windows相比,在Linux中编写脚本是一种乐趣。想象一下(可怕的)命令提示符和(不那么可怕的)PowerShell之间的差别,然后将差别乘以10,这就是在Linux中编写脚本的好处 术语是“shell脚本”,因为命令处理器(相当于Windows命令提示符)被称为“shell”。为了让生活更加充实,Linux提供了各种shell。最常见的是
sh
的变体,如bash
和ash
。不过,有些疯狂的人使用的是csh
或tcsh
或其他语法迥异的语言
创建脚本
要创建一个“shell脚本”,即批处理文件,只需创建一个文本文件,顶部有以下行:
#!/bin/bash
(或者不管你的外壳叫什么名字)。通常,文件名可能以.sh
结尾,或者根本没有特殊的文件结尾
在文件的其余几行中,只列出您想要运行的命令,就好像您是在普通的Linux终端上键入它们一样
然后为该文件分配“执行”权限。在命令行中,可以使用chmodu+x filename.sh
。这意味着为当前用户添加执行权限
当你开始学习在shell中可以做的所有不同的事情时,真正的乐趣就来了。例如,有如下巧妙的技巧:
my-first-command && my-second-command # only runs my-second-command if my-first-command succeeded
或者这个:
my-background-command & # runs my-background-command in the background, so that you can get on with other things
还有很多非常棒的小Linux/UNIX程序,它们可以轻松地将其他程序连接在一起,例如grep
,uniq
,xargs
你的具体例子
不过,在解释了这一切有多伟大之后,我认为这并不是你真正需要做的
示例中的shell脚本部分归结为:
rm /logs/hr/DV/appserv/JEN*; ls /logs/hr/DV/appserv
我得到的印象是,您希望从Windows自动登录以运行这些命令
我相信在PuTTY中,如果它是通过SSH连接的,您可以给它一个运行命令。这就是我要做的
psoftXXX
用户的.ssh
目录中名为authorized\u keys
的文件中。你可以直接复制粘贴它;这可能比做任何花哨的事都容易。请注意,此目录和/或文件可能不存在,在这种情况下,您需要创建它们;如果文件已经存在,请确保将新密钥附加到文件末尾,而不是覆盖它psoftXXX
用户身份自动登录my-first-command && my-second-command # only runs my-second-command if my-first-command succeeded
/bin/bash-c“rm/logs/hr/DV/appserv/JEN*;ls/logs/hr/DV/appserv”/bin/bash
,而是/something/somethine/which/shows/a/menu
。我希望,如果您在PuTTY中指定了一个替代命令,那么该设置将被完全忽略,相反,您将运行脚本
你可能需要玩一会儿。祝你好运 让我们把它分成几个任务: 通过SSH连接到 首先,避免在脚本中使用密码。而是使用公钥/私钥。生成一对:
$ ssh-keygen
按照这些步骤,应该生成两个文件(id_rsa,id_rsa.pub),id_rsa.pub是公钥
转到要连接的服务器,以psoftXXX身份登录,并在$HOME/.ssh/authorized_keys中添加存储在id_rsa.pub中的公钥
现在,您应该能够以psoftXXX用户的身份连接到服务器,而无需键入密码:
$ ssh psoftXXX@<server>
$ssh psoftXXX@
现在是另一项任务。通过SSH删除这些文件
$ ssh psoftXXX@<server> rm -f /logs/hr/DV/appserv/JEN*
$ssh psoftXXX@rm-f/logs/hr/DV/appserv/JEN*
这将作为psoftXXX连接到服务器(服务器不会询问密码),并将执行“rm-f”
如果我必须定期运行它,我会使用cron。你应该去看看
顺便说一句。。。尝试以下命令:
$ man <command>
$ man -k <keyword>
$ man man
$man
$man-k
$man-man
我曾经在工作中遇到过类似的问题。我厌倦了不得不登录到shell中。我们的主系统的安全方式意味着它处于脱机状态。为了登录,我们必须首先ssh到网络中的在线系统,然后ssh从该机器到主系统。以下是程序