在v2ex看到一个问题: 允许在一个命令之前立即发生一个或多个变量赋值,这些赋值为跟随着的命令更改环境变量,这个赋值的影响是暂时的. 那为什么: int=100 int=10 echo $(($int - 10)) 结果是 90 而不是 0 其实是这样: int=100 int=10 echo $(($int - 10)) echo $int sh -x 输出: + int=100 + int=10 echo 90 90 + echo 100 100 ----------------------…
最开始的时候碰到这种问题,是在hadoop003上配置了jdk1.8, 在hadoop002上执行ssh hadoop003 java -version提示没有命令,先ssh hadoop003然后执行java -version则没有问题后来执行分发脚本时也碰到过这种问题,如果分步执行,先ssh到主机,然后执行命令就没有问题,然而直接ssh + 主机 + 命令就会报错,百度之后发现是ssh远程执行命令时加载的环境文件是~/.bashrc.所以解决的思路就是在~/.bashrc中添加需要的环境变量…
[转] 打开 CMD 时自动执行命令 问题描述 在Windows中打开一个command-prompt时,我正在寻找一种方法来执行一些控制台命令,特别是设置一些命令别名. 例如,当打开command-prompt时,我想要一个如下所示的命令自动运行,以便我可以使用ls而不是dir. doskey ls=dir 如何才能做到这一点? 最佳解决方法 如果您希望加载启动,而不是登录时,如果您有XP Pro(XP home不包括gpedit.msc),请执行以下操作: Start>Run>gpedit…
问题:Ubuntu执行命令时,不sudo提示权限不足,sudo提示找不到该命令 补充描述:尝试将命令所在路径添加到/etc/profile中(所有用户环境变量),结果sudo -i切换到root用户后,可以执行该命令,普通用户sudo还是找不到该命令. 解决办法: 首先,修改/etc/sudoers文件,将 Defaults env_reset 修改为 Defaults !env_reset ,然后通过:wq!强制保存退出(因为对root用户也是只读文件) 然后,修改普通用户的~/.bashrc…
PHP 执行命令时sudo权限的配置 1.先写一个PHP文件 <?php system('whoami'); 先看自己的apache2的用户是谁,下面是笔者的截图,笔者使用apche2的用户是www-data 2.配置超级用户 执行命令 sudo visudo 加入红框内配置 ​ 自己网络上搜寻大部分答案,只有上半句,无下半句,切记要加上去,参考:让php以root权限执行exec() 或 shell_exec() 重启apache2 sudo service apache2 restart 3…
原因: 使用paramiko库ssh连接到远端云主机上时,非常偶现卡死现象,连接无法退出(可以是执行命令时云主机重启等造成).需要给定一段时间,不管命令执行是否卡住,都退出连接,显示命令执行超时错误. 实现方式: 线程+事件,在线程中执行ssh命令,给事件配置超时时间. 代码示例: 1 from threading import Thread, Event 2 import paramiko 1 class SshClient(object): 2 3 def __init__(self, ip…
我一直很好奇,在启动 Linux 系统并登录的过程中到底发生了什么事情.按下开机键或启动一个虚拟机,你就启动了一系列事件,之后会进入到一个功能完备的系统中,有时,这个过程不到一分钟.当你注销或者关机时,也是这样. 更有意思的是,在系统启动以及用户登录或注销时,还可以让系统执行特定的操作. 本文,我们将探讨一下在 Linux 操作系统中实现这些目标的传统方法. 注意:我们假定使用的是 Bash 作为登录及注销的主 Shell.如果你使用的是其他 Shell,那么有些方法可能会无效.如果有其他的疑问…
expect介绍: 最近想写一个自动化安装脚本,涉及到远程登录.分发文件包.远程执行命令等,其中少不了来回输入登录密码,交互式输入命令等,这样就大大降低了效率,那么有什么方法能解决呢?不妨试试expect: expect是一款自动化的脚本解释型的工具. expect基于tcl脚本,expect脚本的运行需要tcl的支持. expect对一些需要交互输入的命令很有帮助,比如ssh ftp scp telnet. expect就可以根据设定的规则,自动帮我们输入密码,大大节省了时间. 远程登录lin…
报错:/bin/sh^M:bad interpreter: 编码没有被识别, vi *.sh Esc 输入 :set fileformat 查看文件格式(显示  fileformat=dos) Esc输入 :set fileformat=unix 保存 Esc 输入 :set fileformat 修改文件格式(修改后 显示 fileformat=unix) Esc输入 :wq 最后重新执行sh文件 环境变量 echo $PATH [root@lihui ~]# echo $PATH/java/…
1.切换用户并执行命令 su 用户名 -c "命令" 2.切换用户并执行脚本 su 用户名 -s /bin/bash 脚本路径 3.切换用户并执行命令集su 用户名 <<EOF命令集EOF…
   -*-   2 #批量操作linux服务器(执行命令,上传,下载)   3 #!/usr/bin/python   4 import paramiko   5 import datetime   6 import os   7 import threading   8 def ssh2(ip,username,privatekeyfile,keypwd,cmd):   9     try:  10         paramiko.util.log_to_file('paramiko___…
问题描述: 怎么解决呢: 网上看了好多方法,但是本屌丝表示看不懂啊,没理解人家的博客的博大精深,好吧我们回到正题!! 先切换到root用户下安装这个东西  yum  install  python-argparse 可以看到安装成功了!!! 再次执行命令  bin/sqlline.py master(bin/sqlline.py 后面跟的是主机名 ,如果搭建的是多节点的集群bin/sqlline.py  master,slave1,slave2 也就是说把每个节点的主机名用逗号隔开.当然也可以在…
cwd: 命令的执行路径,相当于os.chdir('/home')提前切换到对应路径 env: 环境变量,某些执行路径需要添加必须的环境变量,例如fastboot依赖与adb路径下的环境变量 import subprocess, os path = os.path.join(os.path.dirname(__file__), "test") myenv = dict(os.environ) myenv["PATH"] = myenv["PATH"…
问题: 调试编译问题,如何获取,GCC(或许make)时,实际编译器和链接器正在执行的命令? 解决方法: 方法一:通用方法 使用dry run,如下 $ make -n 这将显示make 命令正在试图做的事情. 通过 $ make -h 命令,查看帮助可知,make -n实际并不运行任何命令,只是把make试图做的事情显示出来. 同一命令的等价参数 -n, --just-print, --dry-run, --recon Don’t actually run any commands; just…
1.在安装jdk时无意间结束了安装进程,然后就提示这个错误 E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它? 解决办法:直接杀死占用进程 输入以下命令: sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock   2.解压安装包时出现的错误 tar: /usr/local/java:归档中找不到 t…
1.执行lsb_release -a,提示 未安装lsb_release导致的,执行一下yum install redhat-lsb -y,问题解决 2.配置tomcat站点后重启tomcat,提示找不到jdk环境变量? 修改内容如下: Vim /etc/profile JAVA_HOME=/usr/java/jdk1.8.0_51 PATH=$path:$HOME/bin:$JAVA_HOME/bin Export JAVA_HOME Esc :wq 保存退出 执行source /etc/pr…
有两种: Ctrl+C:完全中断.类似于C语言在while循环中的Break: Ctrl+Break(Pause键):单步中断.类似于C语言在while循环中的Continue:…
#今天遇到一个坑爹的问题,写成单引号就不行,被原样输出了. /** *判断key是否存在 */ function exists_key($key){ return $this->cmd('EXISTS $key'); } 造成的原因: ” ” 双引号里面的字段会经过编译器解释,然后再当作HTML代码输出. ‘ ‘ 单引号里面的不进行解释,直接输出. /** *判断key是否存在 */ function exists_key($key){ return $this->cmd(”EXISTS $k…
现在js发展太快了,根本看不懂啊.于是乎想做做功课,于是乎看到了这些“奇怪”的写法,原来好多都是遵循了 ECMASCRIPT6,好吧,在本地看看怎么用的吧.写在本地的环境下, 发现各种报错,根本不能用.还在纳闷呢,这个例子是怎么能写成这个样,还在那教人的呢?误人子弟?怎么跑呢?各种搜索才发现,原来我们一般常用的js是遵循的ES5规范,由于浏览器 支持等各种原因,我们需要将最新的ES6语法变成ES5才能以我们熟知的方式运行.于是乎,针对ES6的就出现了很多打包工具.webpack就是其中一款. 现…
首先,引入子进程模块 var process = require('child_process'); 执行shell命令 调用该模块暴露出来的方法exec process.exec('shutdown -h now',function (error, stdout, stderr) { if (error !== null) { console.log('exec error: ' + error); } });//回调函数非必须! 执行.sh脚本 很多时候需要多个命令来完成一项工作,而这个工作…
通过SSH执行远程主机的命令或脚本时,经常会出现找不到自定义环境变量的问题.但是,如果通过SSH登录远程主机,然后再执行相同的命令或脚本,那么此时执行又是成功的.两种相似的方法,得到的结果却截然不同,看起来很诡异的现象,根本原因在于这两种方式使用的bash模式不同! 1. 通过SSH登录后再执行命令和脚本 这种方式会使用Bash的interactive + login shell模式,这里面有两个概念需要解释:interactive和login. login故名思义,即登陆,login shel…
   今天想重新学习下ffmpeg,于是又来到了雷晓骅的博客,先下载了他的所有代码,这里记录一下在Windows上使用sh脚本下载GitHub上代码的过程. CygWin(最后并没有用到)    可以在Windows系统上使用Unix终端的工具,在运行Windows的同时也可以使用vi,bash,tar等Unix下的工具. 使用CygWin执行sh脚本提示'\r'未找到的命令,因为在dos/window下按一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而Linux/unix下按一次…
平时在处理一个或几个机器运行环境时,一个机器一个机器处理也能接受,但是如果是一批机器,几十或几百台,要是一台一台去安装环境,光是输入同一的命令,估计你自己都想吐,所有聪明的人会想一些偷懒的办法,确实可以找到一些省时省力的方法,比如写一个批量处理shell脚本,这几天在处理一批(八九十台)机器环境,找了一些批量处理的脚本,包括批量传输(scp)文件到多台机器上.批量执行命令到多台机器.还有需要交互的命令,下面记录一些这些命令: 机器IP文件:ip.txt 192.168.10.201 192.16…
有个需求,需要每天定时执行下某个任务,一天一次.由于工作机器环境问题,没有办法设置windows 定时任务.查找资料并完成如下脚本. 功能:每天定时执行一次任务. 复制如下脚本,到一个test.vbs文件 Option Explicit Dim sysTime,sysHour,sysMinute,userTime,userHour,userMinute '设置的时间 userTime="9:01:01" userTime=Split(userTime,":") us…
我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行):   #!/bin/sh  ...  注意:最好使用“!/bin/bash”而不是“!/bin/sh”,如果使用tc shell改为tcsh,其他类似.   符号#!用来告诉系统执行该脚本的程序,本例使用/bin/sh.编辑结束并保存后,如果要执行该脚本,必须先使其可执行:   chmod +x filename  此后在该脚本所在目录下,输入 ./fi…
Shell变量赋值 命名须规则: 1)使用变量无需事先声明 2)首个字符必须为字母(a-z,A-Z) 3)中间不能有空格,可以使用下划线(_) 4)不能使用标点符号 5)不能使用bash里的关键字(可用help命令查看保留关键字) 6)需要给变量赋值时,可以这么写: 7)变量名=值 8)取一个变量的值,只需在变量名前面加一个$ ( 注意: 给变量赋值的时候,不能在"="两边留空格 ) 例1:(变量赋值) #!/bin/sh  # 对变量赋值:  a="hello world&…
原文:https://blog.csdn.net/liuxiao723846/article/details/82667482 SSH 是 Linux 下进行远程连接的基本工具,不光可以登录,也可以远程操作.接下来我们详细讲解一些常用的情况. 1.执行简单的命令: 1)查看某台主机上的磁盘使用情况: $ ssh root@1.113.195.138 "df -h" *************************************************************…
一.crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务. Linux下的任务调度分为两类,系统任务调度和用户任务调度. 系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘.日志清理等.在/etc目录下有一个crontab文件,这个就是系统任务调…
SSH 是 Linux 下进行远程连接的基本工具,但是如果仅仅用它来登录那可是太浪费啦!SSH 命令可是完成远程操作的神器啊,借助它我们可以把很多的远程操作自动化掉!下面就对 SSH 的远程操作功能进行一个小小的总结. 远程执行命令 如果我们要查看一下某台主机的磁盘使用情况,是不是必须要登录到目标主机上才能执行 df 命令呢?当然不是的,我们可以使用 ssh 命令在远程的主机上执行 df 命令,然后直接把结果显示出来.整个过程就像是在本地执行了一条命令一样: $ ssh nick@xxx.xxx…
ssh 远程执行命令 https://www.cnblogs.com/youngerger/p/9104144.html SSH 是 Linux 下进行远程连接的基本工具,但是如果仅仅用它来登录那可是太浪费啦!SSH 命令可是完成远程操作的神器啊,借助它我们可以把很多的远程操作自动化掉!下面就对 SSH 的远程操作功能进行一个小小的总结. 远程执行命令 如果我们要查看一下某台主机的磁盘使用情况,是不是必须要登录到目标主机上才能执行 df 命令呢?当然不是的,我们可以使用 ssh 命令在远程的主机…