
正文
linux后天执行命令 linux执行的命令
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何在 telnet 上Linux主机后执行命令
1如何在 telnet 上Linux
主机后远程执行主机上linux后天执行命令的shell脚本
从 Windows telnet 到 Linuxlinux后天执行命令,建立主机与设备的通信linux后天执行命令,这是典型的嵌入式测试环境。 我的问题代表linux后天执行命令了一类人的需求。
[url][/url] 这个4楼的帖子具有相当的参考价值。又是一种方法。稍作修改和封装,如下:[code] ;Using native socket connection to simulates a TELNET connection to communicate with Linux machine for sending commands and receiving info from it
$port = 23 $user = "root" $passwd = "xxxxxx" TCPStartup() $socket = TCPConnect($host, $port) If $socket = -1 Then MsgBox(48, "Error", "Connection fail!") Exit EndIf
Sleep(300) $ack = TCPRecv($socket, 150) If StringInStr($ack, "login") 0 Then TCPSend($socket, $user @CRLF) Sleep(500) TCPSend($socket, $passwd @CRLF) Else MsgBox(48, "Error", "Cannot connect") Exit
EndIf
wait_cmd_prompt($socket) TCPSend($socket, $cmd1 @CRLF) wait_cmd_prompt($socket) TCPSend($socket, $cmd2 @CRLF) wait_cmd_prompt($socket) TCPCloseSocket($socket) TCPShutdown()
;================================================================================================ ;
Function Definition ;===================================================================================
============= ;Wait for desired command prompt character "#" before sending. Func wait_cmd_prompt($sk) Local $ack
Do
$ack = StringStripWS(TCPRecv($sk, 300), 2) Sleep(300) ;MsgBox(0,"",$ack) Until StringRight($ack, 1) = "#" ;MsgBox(0,"","out of loop") EndFunc[/code]不过,我一楼发的问题还没得到解决。 运行设备端(Linux环境)的脚本(shell脚本)远比远程命令控制来得可靠,因为这样Linux的一些环境变量是可继承的。 继续研究中。 minterz 发表于 2011-2-22 19:51 linxu下的bash脚本如果要远程启动 可以使用plink 使用ssh远程控制 xiehuahere 发表于 2011-2-23 12:11 谢谢楼上的,我试试。 另外,这样也行: TCPSend($socket, "/home/script.sh " $param @CRLF)
Posted 14 October 2008 - 09:19 PM Why not using native socket connections like following example. I am using this algorithm to communicate with my router (Linux machine) for
sending commands and receiving info from it. Be sure to replace specific information.
;BEGIN SCRIPT---------------------------------------------- ;simulates a TELNET connection Global $host, $port, $delay, $user, $pass, $sk, $ack
$host = "192.168.1.1" $port = 23
; miliseconds to wait before sending/receiving something $delay = 300 compensates network/internet delays $user = "" $pass = "" TCPStartup()
$sk = TCPConnect($host, $port) ;if invalid socket If $sk = -1 Then MsgBox(0, "", "Cannot connect")
Exit EndIf ; message from device
Sleep($delay) $ack = TCPRecv($sk, 150) TrayTip("", $ack, 10) ; verifying the correct answer If StringInStr($ack, "wl500gp login") = 1 Then ; if the string is correct then we send user
相关问答
Q1: 怎样在Linux启动后执行指定的命令
有两种方式:一种方式是根据运行级别配置服务,一种方式是执行本地特殊配置。
举例,任务是启动时运行命令cvslockd:
方式一:
1、 建立自启动脚本/etc/rc.d/init.d/cvslockd,内容为:
#!/bin/bash
/usr/local/bin/cvslockd
设置文件的属性为可执行:
#chmod +x /etc/rc.d/init.d/cvslockd
2、查看计算机运行级别,在文件/etc/inittab里看到id:5:initdefault:,则此系统运行级别为5;
3. 到/etc/rc5.d目录下,把你要执行的可执行文件做一个软连接,而且在命名的时候要以大写S字母开头,S之后的数字大小代表执行顺序的先后,数字越大越后执行。
#ln -s /etc/rc.d/init.d/cvslockd /etc/rc5.d/S100cvslockd
#ln -s /etc/rc.d/init.d/cvslockd /etc/rc0.d/K20cvslockd
方式二:
在/etc/rc.d/rc.local 添加 exec /usr/local/bin/cvslockd
该方式是在最后启动cvslockd。
Q2: 4-3 Linux中的会话和作业(1、后台运行 & 和 查看后台 jobs)
一、会话和作业的概念:
1、进程:Linux自身运行的独立程序。
2、进程组:进程组是一个或多个进程的集合。
_____________________________________________________
Linux包括三种不同类型的进程,每种进程都有自己的特点和属性:
3、交互进程 —— 由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。
4、批处理进程 —— 这种进程和终端没有联系,是一个进程序列。
5、监控进程(也称守护进程)—— linux系统启动时启动的进程,并在后台运行。
_______________________________________________________________
6、会话:一个用户登录终端后会新建一个会话,它是和控制终端产生IO交互的过程。这个过程可以称之为会话期。会话期可以产生一个 或 多个进程组的集合。(比喻打电话,首先要电话的接通,接通了才可以产生人与人之间的信息交互。在此会话期间可以产生一个或多个不同范畴的话题)
7、作业:作业类似于用户提交给系统的一个任务。一个作业可以包含一个或多个进程共同完成一个任务。(比喻会议上BOSS需要完成一个任务,根据需求可以分配到一个或多个人配合完成。)
8、作业控制:指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程,等一会儿再继续执行该进程。这样用户就能在多个独立作业间进行切换。(比喻正在进行常规工作的员工,经理突发一个事情需要协助处理。这位员工放下手上的工作(挂起)。首先处理经理安排的事情,完事后再处理常规工作的事情。)
二、通过 date 和 sleep 命令理解前台、后台作业。date 命令是显示系统时间,sleep 命令是设置延时。
1、前台执行命令:
1)、前台执行命令。输入输出都是按部就班,执行完一个命令再执行下一个命令,把结果打印出来。
红色下划线:date 查看当前日期时间。
黄色下划线:sleep 10 延时10秒。
蓝色下划线:date 查看当前日期时间。
通过结果可以看出第一个 date 打印出日期时间后,延时10再执行一个 date 打印日期时间。两个时间相隔 10 秒。
2)、系统正在执行前台的命令时,再输入命令是不会马上执行。要执行完毕前面的命令才可以执行后面输入的命令。同样用 date 和 sleep做实验:
红色下划线:date 输出当前日期时间。
黄色下划线:sleep 60 系统执行延时 60 秒的操作。 [root@localhost ~]# 用户标识符没有出现。虽然光标可以进行输入,但输入的 ls /tmp/ 命令并没有马上执行,没有输出。因为此时,前台正在执行 sleep 60 延时60秒的指令。
红色下划线:等待 sleep 60 执行完毕后,再执行一个 date 输出当前日期时间。两个 date 之间时间相隔 60 秒。
黄色下划线:待整条 date ; sleep 60 ; date 命令都执行完毕后,再执行刚才延时 60 秒时输入的 ls /tmp/ 命令,输出结果。
蓝色下划线:[root@localhost ~]# 用户标识符出现才算前台命令执行完毕,可以继续正常操作。
2、后台执行命令:
:命令后面使用 符号,可以让命令在后台执行。
jobs:可以查看正在后台运行的作业。
jobs选项:-l —— 除了列出作业号外,同时列出 PID。
-r —— 列出仅仅在后台运行的作业。
-s —— 列出仅仅再后台暂停的作业。
1)、后台运行的命令进程不会影响到前台命令进程。
红色下划线:sleep 30 —— 把 sleep 30 丢到后台运行。
黄色下划线:通过 jobs 命令跟踪进程情况。(Runing —— 正在运行,Done —— 完成)
绿色下划线:sleep 后台运行期间进行了 ls 和 tail 命令的查询输出,正常运作。
蓝色下划线:jobs 没有输出,代表 sleep 已经完结,没有后台进程。
2)、挂起 和 中断后台运行的命令。
Ctrl+c:中断后台进程。Ctrl+z:挂起后台进程。
jobs 命令可以查看到挂起的命令,不可以查看中断的命令。
3)、jobs选项:-l —— 除了列出作业号外,同时列出 PID。
红色下划线:sleep 100 ,后台运行延时100秒的程序。
黄色下划线:jobs -l 列出所有后台进程(-l —— 含作业号、PID、运行状态 和 执行的命令。)
运行状态有 Running 、Stopped 和 Done,后台正在运行会显示 Running,当运行完毕后用 jobs 查看会显示 Done,并且命令后面的 符号也会消失。Done只出现一次,下次再用 jobs 查看后台程序就没有了系统曾提示过 Done 的命令。挂起正在运行的命令,后台会显示 Stopped 暂停状态。
-r —— 列出仅仅在后台运行的作业。
-s —— 列出仅仅再后台暂停的作业。
Q3: 在Linux系统中要让某个进程在3天后下午2:10执行,可以用哪个命令?
可以使用timeout命令或Timelimit程序。
方法一linux后天执行命令:使用timeout命令最常见linux后天执行命令的方法是使用timeout命令来实现此目的linux后天执行命令,对于那些不知道的人,timeout命令将有效地限制进程的绝对执行时间,timeout命令是GNUcoreutils包的一部分,因此它预先安装在所有GNU/Linux系统中。方法二:使用Timelimit实用程序使用提供的参数执行给定命令,并在给定时间后使用给定信号终止生成的进程,首先,它将通过警告信号,然后在超时后,它将发送终止信号。
关于linux后天执行命令和linux执行的命令的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







