crontab演出newLISP脚本设置环境变量
今天遇到一个问题。执行在终端newLISP文字,一切正常,搬去crontab在将无法正常工作。即使crontab -e命令是在同一个用户执行。还是有问题。
因为newLISP脚本使用hive和hadoop。它预计发行环境变量。
所以第一次使用newLISP shell执行(env)命令,将当前环境变量记录到文件evn.lsp中。
然后在newLISP脚本中载入之。
以下是env.lsp文件部分内容:
(set 'local-envs '(("LC_PAPER" "en_US.UTF-8") ("LC_ADDRESS" "en_US.UTF-8") ("HOSTNAME" "hadoopMaster.com")
("LC_MONETARY" "en_US.UTF-8")
("SHELL" "/bin/bash")
("TERM" "dumb")
("HADOOP_HOME" "/usr/local/hadoop")
("HISTSIZE" "5000")
("SSH_CLIENT" "123.125.91.21 44582 22")
("LC_NUMERIC" "en_US.UTF-8")
("SQOOP_HOME" "/home/chenshu/sqoop-1.4.4.bin__hadoop-1.0.0")
("SSH_TTY" "/dev/pts/7")
("LC_ALL" "en_US.UTF-8")
("HISTFILESIZE" "5000")
("USER" "chenshu")
("EMACS" "t")
("LS_COLORS" "")
("LC_TELEPHONE" "en_US.UTF-8")
("HBASE_HOME" "/usr/local/hbase")
("TERMCAP" "")
("TMOUT" "3600")
("COLUMNS" "146")
("MAVEN_HOME" "/opt/apache-maven-3.2.1")
("MAIL" "/var/spool/mail/chenshu")
("PATH" "/usr/local/java/bin:/usr/local/hadoop/bin:/usr/local/hive/bin://usr/local/hbase/bin://usr/local/hive/bin:/usr/local/postgres9.1/bin:/us\
r/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/data/shell:/data/tools:/opt/apache-maven-3.2.1/bin/:/home/chenshu/sqoop-1.4.4.bin__hadoop-1.0.0/bin/\
:/home/chenshu/bin:/opt/apache-maven-3.2.1/bin/:/home/chenshu/sqoop-1.4.4.bin__hadoop-1.0.0/bin/")
("LC_MESSAGES" "en_US.UTF-8")
。。。
还加入了一行代码,能够自己主动遍历上面的list,设置每个环境变量。
(dolist (e local-envs)
(env (e 0) (e 1))
)
这样,在crontab中执行test.lsp脚本成功:
* * * * * cd /home/chenshu/export; /usr/bin/newlisp ./test.lsp >/dev/null 2>&1
而test.lsp中代码例如以下:
#!/usr/bin/newlisp
(define (write-log msg)
(append-file "hive2mysql.log" (string msg "\n"))
) (load "/opt/newlisp_util/env.lsp")
(set 'hive-create-table-statement (exec (format "hive -e 'show databases' 2>&1")))
(write-log hive-create-table-statement)
(exit)
输出结果为Hive中的数据库名称。为保密,这里不列出。
当Jenkins执行脚本出现某些环境变量找不到错误时,也可以用这种方法。
版权声明:本文博主原创文章。博客,未经同意不得转载。
crontab演出newLISP脚本设置环境变量的更多相关文章
- 在python脚本中设置环境变量,并运行相关应用
1. 问题 在自动化应用的时候 ,有时候环境变量与运行需要不一致.这时候有两种选择: 改变节点环境变量,使得其和运行需求保持一致: 在自动化脚本中设置环境变量,其范围只在脚本运行环境中有效. 显然,当 ...
- Linux里设置环境变量的方法(export PATH)
1.动态库路径的设置 Linux下调用动态库和windows不一样.linux 可执行程序是靠配置文件去读取路径的,因此有些时候需要设置路径 具体操作如下 export LD_LIBRARY_PATH ...
- ubuntu下设置环境变量的三种方法【转】
转自:http://blog.chinaunix.net/uid-26916352-id-3208366.html 通常设置环境变量有三种方法: 一.临时设置 export PATH=/home/ya ...
- Ubuntu中设置环境变量详解
1, 为单一用户:.bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.打开用户主目录下的.bashrc,在这个文件中加入export PA ...
- Linux程序写入oralce数据库中文显示为问号??? 代码实现设置环境变量!
Linux程序写入oralce数据库中文显示为问号??? 1.问题介绍 根本原因是字符集的问题,是数据库的字符集和写入程序的linux系统的字符集不一致导致: 但是用export NLS_LANG=& ...
- Linux中使用export命令设置环境变量
Linux export 命令 2011-08-31 22:36:39| 分类: 命令总结|举报|字号 订阅 功能说明:设置或显示环境变量. ######################## ...
- 怎样在Ubuntu中设置环境变量
首先启动终端. 单击屏幕左上角的Ubuntu图标,在弹出的窗口中点击搜索栏,输入"terminal", 稍等片刻,终端就会赫然在目!二话不说,直接点击! 然后打开环境设置文 ...
- ssh连接远程主机执行脚本的环境变量问题
近日在使用ssh命令ssh user@remote ~/myscript.sh登陆到远程机器remote上执行脚本时,遇到一个奇怪的问题: ~/myscript.sh: line n: app: co ...
- 00006 - Linux中使用export命令设置环境变量
功能说明:设置或显示环境变量. #################################################################################### ...
随机推荐
- css 实现table 隔行变色
<html> <head> <title>Member List</title> <style> <!-- .datalist{ bo ...
- Windows Phone开发(24):启动器与选择器之发送短信
原文:Windows Phone开发(24):启动器与选择器之发送短信 本节我们通过一个简单的发送短信示例来演示一下如果配合使用PhoneNumberChooserTask和SmsComposeTas ...
- 完全合并C++面试题
C++面试题 1.是不是父母写了virtual 功能,假设子类重写它的功能不virtual ,也使多态性? virtual修饰符隐形遗传. private 还集成.问权限而已 virtual可加可不加 ...
- hdu-2814-Interesting Fibonacci-斐波那契周期节
哇,其实我2A该....否1A纯脑损伤.. 乞讨:F(a^b)^(F(a^b) ^ (n-1))%c 既是求F(a^b)^(F(a^b) ^ (n-1)%phi[c]+phi[c])%c 先求x=F ...
- wpf 模拟3D效果(和手机浏览图片效果相似)(附源码)
原文 wpf 模拟3D效果(和手机浏览图片效果相似)(附源码) pf的3D是一个很有意思的东西,类似于ps的效果,类似于电影动画的效果,因为动画的效果,(对于3D基础的摄像机,光源,之类不介绍,对于依 ...
- 编译Android源代码与内核总结
这些天花了些时间自己下载了android源代码来编译,当中走了一些弯路导致耗了些时间,如今又一次梳理总结下,让有同样想法的人自己编译的时候能少走些弯路,官方指导文档在http://source.and ...
- dm8148 jpeg编解码器测试
测试过程: 1)于A8将jpeg传送到videoM3解码,然后,videoM3编码.在编译jpeg图像传输到A8,主要是测试jpeg编码的图像需要多少时间: 1000w像素: 编码时间:43ms. ...
- Hosting WCF Service
之前在博客几个实例DemoWCF服务寄宿到控制到应用程序中,这篇来总结一下,经常使用的几种宿主的方式. 1.Self-Hosting 一个WCF服务可以寄宿在控制台应用程序或者WinForms app ...
- node.js基础:数据存储
无服务器的数据存储 内存存储 var http = require('http'); var count = 0; //服务器访问次数存储在内存中 http.createServer(function ...
- mysql语句在node.js中的写法
总结一下mysql语句在node.js中的各种写法,参考了npm网站mysql模块给的实例. 查询 select //1 db.query('select * from tuanshang_users ...