此处将为大家介绍关于centos6环境远程执行shell脚本报错notavalididentifier的问题处理的详细内容,并且为您解答有关centos无法远程的相关问题,此外,我们还将为您介绍关于C
此处将为大家介绍关于centos6环境远程执行shell脚本报错not a valid identifier的问题处理的详细内容,并且为您解答有关centos无法远程的相关问题,此外,我们还将为您介绍关于CentOS 7 Shell脚本编程第二讲 Shell 脚本创建和执行、CentOS 7重启报错:Entering emergency mode. Exit the shell to continue...、centos crontab定时运行shell脚本、Centos 的 Shell 脚本定时执行SQL语句的有用信息。
本文目录一览:- centos6环境远程执行shell脚本报错not a valid identifier的问题处理(centos无法远程)
- CentOS 7 Shell脚本编程第二讲 Shell 脚本创建和执行
- CentOS 7重启报错:Entering emergency mode. Exit the shell to continue...
- centos crontab定时运行shell脚本
- Centos 的 Shell 脚本定时执行SQL语句
centos6环境远程执行shell脚本报错not a valid identifier的问题处理(centos无法远程)
# 通过jenkins的apache用户rsync同步php代码到远程服务器报错如下:
SSH: EXEC: STDOUT/STDERR from command [/bin/sh /usr/local/worksh/jenkins_rsync/rsync_cc-product-api_cn.sh all ] ...
/usr/local/worksh/jenkins_rsync/rsync_cc-product-api_cn.sh: line 29: `product-api_rsync_all'': not a valid identifier
SSH: EXEC: completed after 201 ms
SSH: Disconnecting configuration [sz_platform01] ...
# 确认问题,在jenkins服务器中模拟问题,确实报错了,但是在目标服务器 1.1.1.1中root切换到apache直接执行代码是没有问题的
猜测可能是jenkins发布代码时使用了 source /etc/profile 导致环境变量不同引发的问题
[apache@dev9_50:/root]$ ssh -p2025 apache@1.1.1.1 "/bin/sh /usr/local/worksh/jenkins_rsync/rsync_cc-product-api_cn.sh all"
apache@1.1.1.1''s password:
/usr/local/worksh/jenkins_rsync/rsync_cc-product-api_cn.sh: line 29: `product-api_rsync_all'': not a valid identifier
[apache@dev9_50:/root]$
# 具体的脚本如下
[root@sz_platform_web01:~]# cat /usr/local/worksh/jenkins_rsync/rsync_cc-product-api_cn.sh
#!/bin/bash
##############jenkins拉取git代码同步到 1.1.1.1_sz_platform_web01 上,然后触发 1.1.1.1_sz_platform_web01 上的该脚本进行 szali 内网机房同步####################
###### rsync product-api.chinasoft.com data ######################################
passwd="/data/www/.rsync/rsyncd.pass1"
exclude_list="--exclude=logs/ --exclude=cache/ --exclude=.git --exclude=.gitignore --exclude=.gitattributes --exclude=store_data/ --exclude=invoice_file/"
# szali_product_api_ip
szali_product_api_ip_list="172.18.54.136"
#############################################################
# 同步所有机房
function product-api_rsync_all()
{
# rsync szali_product-api
for szali_product_api_ip in $szali_product_api_ip_list
do
echo "####################rsync szali_product-api start################################"
echo $szali_product_api_ip
rsync -zavP --delete $exclude_list --password-file=$passwd /data/www/vhosts/product-api.chinasoft.com/ apache@$szali_product_api_ip::apache/data/www/vhosts/product-api.chinasoft.com/
echo "################### rsync szali_product-api end #######################"
done
}
# 只同步深圳机房
function product-api_rsync_szali()
{
# rsync szali_product-api
for szali_product_api_ip in $szali_product_api_ip_list
do
echo "####################rsync szali_product-api start################################"
echo $szali_product_api_ip
rsync -zavP --delete $exclude_list --password-file=$passwd /data/www/vhosts/product-api.chinasoft.com/ apache@$szali_product_api_ip::apache/data/www/vhosts/product-api.chinasoft.com/
echo "################### rsync szali_product-api end #######################"
done
}
##################### MAIN ###############################
usage () {
echo ""
echo " Please Input server infomation!"
echo ""
echo " USAGE: `basename $0` [all|product-api_szali]"
echo ""
}
if [ $# != 1 ]
then
usage >&2
exit 1
fi
OPT=$1
case $OPT in
all)
echo "start rsync `basename $0` to all apiservice servers"
product-api_rsync_all
;;
apiservice_szali)
echo "start rsync `basename $0` to szali_product-api_servers"
product-api_rsync_szali
;;
*)
echo "Usage:`basename $0` [all|product-api_szali]"
;;
esac
# 经过反复修改,发现是中划线的问题,将函数名统一更换为下划线即可_
product-api_rsync_all --> 修改为 product_api_rsync_all
product-api_rsync_szali --> 修改为 product_api_rsync_szali
CentOS 7 Shell脚本编程第二讲 Shell 脚本创建和执行
首先说明一点,shell和python在语法上有很多相同点,比如都不强制以不以;结尾,都是弱类型脚本语言。
[root@promote ~]# yum install vim -y
Shell 脚本通常用编辑器vim创建和修改。也可以使用其他编辑器,例如nano等。
创建脚本users.sh。用于显示当前用户。
[root@promote ~]# vim users.sh
#按i进入编辑模式输入who
#按Esc 退出编辑模式
#输入:wq 保存文件
#授予脚本可执行权限
[root@promote ~]# chmod +x users.sh
#查看当前目录文件
[root@promote ~]# ls
#执行脚本
[root@promote ~]# ./users.sh
root tty1 2019-03-31 11:17
root pts/0 2019-03-31 14:08 (192.168.216.1)
[root@promote ~]#
可以看出当前用户是root,分别在本机和192.168.216.1远程登录。vim快捷键还可以使用w保存修改,q退出编辑,q!不保存强制退出编辑。
下文正式开始Shell脚本编写。该脚本执行安装epel-release和htop两个软件。
[root@promote ~]# vim install_htop.sh
#!/bin/bash
#Date: 2019-03-31 14:55:55
#Author: WeiWei
#Version: v1.0
#install epel-release
yum install epel-release -y
#install htop
yum install htop -y
#!/bin/bash用于指定脚本解释器,本例指定解释器为/bin/bash,通常脚本还加上编写时间、作者和版本等信息,用于满足Shell编程规范推荐。从该脚本开始需要增加以上注释内容。
#开头为注释,通常位于脚本前后行或脚本行尾,解释器不会加以解释执行。脚本增加注释可以帮助自己和他人理解脚本用途,通常脚本不建议使用中文字符。
脚本文件如何执行呢?除了第一讲介绍方法外,下文介绍第二和第三种方法。
#和第一种方法缺少chmod赋予执行权限过程
[root@promote ~]# bash install_htop.sh
#第三种方法
[root@promote ~]# source install_htop.sh
脚本执行过程中,会查找系统环境变量。env命令可以详细显示环境变量。
[root@promote ~]# env
思考内容:是否有其他命令显示系统变量?
CentOS 7重启报错:Entering emergency mode. Exit the shell to continue...
1.报错:Entering emergency mode. Exit the shell to continue.
2.故障分析(猜测):不按规范挂机或重启导致文件系统故障。
3.故障状态:
备注:注意中间读取的是sda3失败
4.故障解决:
输入命令:xfs_repair -v -L /dev/sda3
-L 选项指定强制日志清零,强制xfs_repair将日志归零,即使它包含脏数据(元数据更改)。
centos crontab定时运行shell脚本
1、安装yum install crontabs
2、创建脚本touch test.sh
3、编辑脚本vi test.sh
编辑后的test.sh还不是可执行文件,需要执行chmod 700 test.sh
4、编辑crontab -e (类似于vi操作)
20 23 * * * /home/pe/test.sh
表示每天晚上23:20运行脚本test.sh
5、手动启动crontab服务:service crond start
深入学习:
http://www.ha97.com/910.html
https://www.cnblogs.com/chen-lhx/p/5996781.html
https://www.cnblogs.com/kerrycode/p/3238346.html
https://blog.csdn.net/baidu_35757025/article/details/64437792
Centos 的 Shell 脚本定时执行SQL语句
目的:解决每天重复刷新数据的问题;
1. 编写Shell 脚本excute_MysqL.sh
#!/bin/bash # Define log TIMESTAMP=`date +%Y%m%d%H%M%s` LOG=call_sql_${TIMESTAMP}.log echo "Start execute sql statement at `date`." >>${LOG} #o execute sql stat MysqL -e ' use onem2bak; UPDATE `onem2bak`.`system_function` SET `security_leven` = "low" where 1=1; quit'
因为我是使用MysqL本地免密登录,如果你设置了密码就将MysqL -e 改成 MysqL -uroot -p123456 -e;
2. 设置执行权限
chmod 777 excute_MysqL.sh
3. 设置定时任务执行
#修改定时任务 crontab -e 新增一行 59 23 * * * /home/shell/excute_MysqL.sh #查看定时任务 crontab -l好了,到此结束。
今天关于centos6环境远程执行shell脚本报错not a valid identifier的问题处理和centos无法远程的分享就到这里,希望大家有所收获,若想了解更多关于CentOS 7 Shell脚本编程第二讲 Shell 脚本创建和执行、CentOS 7重启报错:Entering emergency mode. Exit the shell to continue...、centos crontab定时运行shell脚本、Centos 的 Shell 脚本定时执行SQL语句等相关知识,可以在本站进行查询。
本文标签: