一、CentOS的防火墙问题
查看防火墙状态:systemctl status firewalld
打开防火墙: systemctl start firewalld
关闭防火墙:systemctl stop firewalld
查看防火墙开机启用状态:systemctl list-unit-files |grep fire(systemctl is-enabled firewalld)
设置防火墙开机启动:systemctl enable firewalld(systemctl enable firewalld.service )
设置防火墙开机禁用:systemctl disable firewalld(systemctl disable firewalld.service)
查看防火墙开放的端口:firewall-cmd --list-all
添加防火墙开放端口:firewall-cmd --zone=public --add-port=80/tcp --permanent
--zone=public 添加时区
--add-port=80/tcp 添加端口
--permanent 永久生效
加载防火墙配置文件:firewall-cmd --reload
二、Oracle开启服务与监听
1.先看oracle的监听和oracle的服务是否都启动了。
启动oracle监听:cmd命令行窗口下,输入lsnrctl start,回车即启动监听。
Lsnrctl ----status 查看监听状态
2.查看oracle的sid叫什么,比如创建数据库的时候,实例名叫“orcl”,那么先手工设置一下oralce的sid,cmd命令窗口中,set ORACLE_SID=orcl(有时用export ORACLE_SID=orcl)
Export $ORACLE_SID
3.再输入sqlplus /nolog,回车
再输入 conn / as sysdba;回车
4.再输入startup,回车.这步是启动oracle服务。如果startup启动被告知已经启动了,可以先输入shutdown immediate;等shutdown结束之后,再输入startup。
5.过几秒钟等命令运行完成,就能连接了。这个时候,可以输入"select * from user_tables;"测试一下,看是否有查询结果。
三、CentOS禁用root本地或远程ssh登录
禁止root本地登录
修改/etc/pam.d/login文件增加下面一行
auth required pam_succeed_if.so user != root quiet
禁止root远程ssh登录
修改/etc/ssh/sshd_config文件,将
#PermitRootLogin yes
修改为
PermitRootLogin no
修改时注意前面的#注释符。 同时不要忘记重新启动sshd服务 (service sshd restart)。 禁止以后,可以使用普通用户登录,登录后若需要root权限,可以使用su切换到root用户。或者配置sudo使普通用户使用某些root权限。 这样可以在一定程度上增加系统的安全性。
四、Linux上使用crontab实现定时任务
第1列分钟1~59
第2列小时1~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~6(0表示星期天)
第6列要运行的命令
下面是crontab的格式:
分 时 日 月 星期 要运行的命令
每天23点50在后天执行:
50 23 * * * /usr/local/data-integration/kitchen.sh -file=/usr/local/data-integration/job/erp数据转换作业.kjb >/usr/local/data-integration/kettle_log/erp数据转换作业.log 2>&1
> 直接把内容生成到指定文件,会覆盖源文件中的内容,还有一种用途是直接生成一个空白文件,相当于touch命令
>>尾部追加,不会覆盖掉文件中原有的内容
五、如何对shell脚本赋予可执行权限
对1.sh文件赋予可执行权限:
chmod u+x 1.sh
对文件夹下所有shell文件赋予可执行权限:
chmod u+x *.sh
六、Linux上使用命令运行Kettle的转换和工作
注:Kettle 是一款国外开源的 ETL 工具,纯 Java 编写,绿色无需安装,数据抽取高效稳定 (数据迁移工具)。Kettle 中有两种脚本文件,transformation 和 job,transformation 完成针对数据的基础转换,job 则完成整个工作流的控制。
/usr/local/data-integration kettle路径
/usr/local/java/jdk1.8.0_191 jdk路径
kitchen.sh(用来执行job)和pan.sh(用来执行转换)等都在data-integration下面。
Kettle用命令运行转换和作业:
Windows:
Kitchen /level:Basic>D:\etl.log /file:F:\Kettledemo\email.kjb
Linux:
kitchen.sh-file=/home/job/huimin.kjb >> /home/ log/kettle.log
./pan.sh -file=/home/hadoop/workplace/kettle/trans/test_cml.ktr -norep
Windows:
pan /level:Basic>D:\etl.log /file:F:\Kettledemo\email.ktr
Linux:
/home/kettle/data-integration/kitchen.sh-file=/home/kettle/transition/move.kjb -log=log.log
$kitchen路径 -file=$job路径 log=$log路径
注意:日志文件夹后一定要加.log
Eg:
Linux命令运行作业(kjb):
/usr/local/data-integration/kitchen.sh -file=/usr/local/data-integration/job/erp数据转换作业.kjb -log=/usr/local/data-integration/kettle_log.log
Linux命令运行转换(ktr):
./pan.sh -file=/usr/local/data-integration/transition/erp采购数据.ktr -norep