2019-07-16 15:27:22 missdxr 阅读数 755

前言

写一个简单的shell ,读取linux 目录下的文件内容,将其一一对应插入本地数据库中


mysql shell脚本插入数据

  • 文本内容

  • 脚本如下,此为while无限循环
#!/bin/bash
IFS='\n'
count=1
while [ $count -eq 1 ]; do
    for line in  $(cat 123.txt)
    do
        c1=`echo $line |awk '{print $1}'`
        c2=`echo $line |awk '{print $2}'`
        c3=`echo $line |awk '{print $3}'`
        mysql -uroot -p123 bs_audit <<eof
        insert into  insert_data(name,age,createTime) values($c1,$c2,$c3);
eof
    done
done

 

Oracle shell脚本插入数据

#!/bin/bash
count=1
while [ $count -eq 1 ];do
    cat 123.txt |while read c1 c2 c3
    do
      sqlplus system/123 <<eof
      insert into  insert_data(name,age,createTime) values($c1,$c2,$c3);
eof

    done
done

 

2016-08-08 16:04:41 u011630575 阅读数 17464

在linux下用shell脚本读取mysql结果集各数据项的值,按行读取sql结果,将sql执行结果读取到shell变量中,然就可进行处理。

 

HOSTNAME="172.16.xx.xx"    #数据库信息
PORT="3306"
USERNAME="root"
PASSWORD="root"

DBNAME="log"         #数据库名称
TABLENAME="student"


COMMAND1="mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME}
方法一:
while read -a row
do
    echo "..${row[0]}..${row[1]}.."
done< <(echo "select  id ,name  from  student;" | ${COMMAND1})


方法二:
while read a b
do
    echo "..${a}..${b}.."
done< <(echo "select  id ,name  from  student;" | ${COMMAND1})

 

注释:注意"done< <("的写法,第一个"<"要和"done"之间没空格,两个"<"之间有一个空格,"<""("之间没空格。

 

2014-10-12 23:56:20 xcbeyond 阅读数 4188

       在数据化飞速发展的今天,数据的定期备份成了数据安全首要考虑的问题。一旦出现了问题或故障,导致数据无法正常读取,那么原有的重要数据又如何得以保存下来呢。当然不能采用本机备份了,这样的备份风险很大,极有可能鸡飞蛋打,如果机器都宕掉了,本机备份的数据也就没法利用啦。因此,采取远程服务器作为备份机(远程数据备份)就变的很重要了。

        远程手动备份费时费力而且还不及时,最好的办法就是通过脚本实现远程自动备份。但远程备份无论是通常通过SSH方法登陆到业务服务器(数据服务器),通过scp拷贝文件时都说需要不断输入登录密码。为了解决这个问题可以采用“SSH证书登录方式”,实现SSH无需输入密码来进行登录啦。说了这么多的废话,现在就开始一步步动手做吧。

       1.配置“SSH证书登录方式(无密码验证登录)”

          ※具体配置请参看SSH证书登录方式(无密码验证登录)


        2.编辑crontab文件

             ※crontab是Linux下的一个命令,位于/etc/crontab,用来将指定的脚本等在指定的时间进行执行,即:定时用来某个任务。

            如设置每天凌晨1:00执行cron.daily中的脚本:

               00 1 * * * root run-parts /etc/cron.daily

        3.编辑自动备份脚本

            在/etc/cron.daily/目录下放入脚本

      cd   /etc/cron.daily/
      vi bakeup_script
      pg_dump -U postgres voipack > /voipack.sql
    pg_dump -U postgres regserver > /regserver.sql
    tar -cvjf /aavm.tgz.bz2 /usr/local/aavm
    tar -cvjf /oracle.tgz.bz2 /var/oracle
    scp /voipack.sql root@218.242.214.20:/root/218.242.214.23_backup
    scp /regserver.sql root@218.242.214.20:/root/218.242.214.23_backup
    scp /aavm.tgz.bz2 root@218.242.214.20:/root/218.242.214.23_backup
    scp /oracle.tgz.bz2 root@218.242.214.20:/root/218.242.214.23_backup 
        通过以上操作就完成了数据的远程备份。


 

2011-02-23 23:39:00 superxgl 阅读数 1481

使用 Collectd 收集的Liunx 性能参数值一般都按照收集的对象的名称存储在 /var/lib/collectd/rrd 下面,有许多不同的语言实现可以读取 rrd 文件的数据,如 python 中的 py-rrdtool 和 pyrrd,Java 中的 jrrd 都可以读取相应的性能参数和性能名称,但是如果要初步读取相应的数值以便查看,使用 BASH 脚本是最为方便的了,线面就是使用 bash 脚本读取一个目录下面文件中最新的 Counter 数值:

  1: for x in $(ls $1)
  2: do
  3:   echo Counters in $1/$x:
  4:   rrdtool lastupdate $1/$x;
  5:   echo '';
  6: done

实际上使用 rrdtool 的命令倒不是一件困难的事,只是之前没有用过 linux 下的 bash 脚本,不知道如何使用,参考了 Linux in a Nutshell 之后,才算完成。

BTW, Linux in a NutShell 果然是一本很好的电子版参考书 (Digital Reference Book).

http://dehuizhou1986.blog.163.com/blog/static/7638252010213103146124/
2015-08-10 22:23:11 abel__ing 阅读数 389

Linux脚本的注意事项:

       今天把《Linux Shell脚本攻略》第一章看完了,总结一下自己在运行时出过的小插曲:

    首先IFS那里,使用IFS读取变量的每一个条目时,书籍是有一处错误的,总之记住,你以什么为CSV数据分隔符,那你将IFS赋成什么就就好了。

    在写Linux shell脚本利用 [ ] 进行脚本判断时,切记在 [ ] 和你的条件两端加空格,例如你的判断条件是 $x -eq 0,用 [ ] 进行判断的条件是 [空格$x -eq 0空格],否则会报错,在这个上面耗费了比较长的一段时间才知道错误原因。

    一些小知识点:&是按位与操作符,| 是按位或操作符,这两个都是位操作符。&& 是逻辑与操作符,|| 是逻辑或操作符。貌似编程之美上有一道题用到这个了,但当时没有细看这个知识点。

Linux命令之乐:

      以前一直觉得Linux命令挺无趣的,但今天练习script和scriptreplay时乐趣横生,script是录制文件,我是这么写的 script -t 2>timing.log -a output.session。完全抄的,然后输入了自己想要玩的命令,ps bash 等等,最后输入 exit停止录制,播放时将上面生成的两个文件放在scriptreplay后面即可,然后等待一段时间,你会发现你像在看视频一样,看你在输入的命令。而且生成的两个文件的确很小。

    在书上看到这样一段话,感触蛮大的,摘抄如下:maxdepth和-mindepth应该作为find的第3个参数出现。如果作为第4个或之后的参数,就可能会影响到find的效率,因为它不得不进行一些不必要的检查。例如,如果-maxdepth作为第4个参数,-type作为第三个参数,find首先会找出符合-type的所有文件,然后在所有匹配的文件中再找出符合指定深度的那些。但是如果反过来,目录深度作为第三个参数,-type作为第四个参数,那么find就能够在找到所有符合指定深度的文件后,再检查这些文件的类型,这才是最有效的搜索顺序。

    这就是今天的收获。进度还是有点慢,7天看完这本书估计自己到后面会跳着看一些章节,主要看网络方面和系统管理员方面的吧,因为正则表达式实际上鸟哥上面讲的也是比较清楚的,今天看觉得一些细节的东西可以略过,因为你记不住。把大块的东西记住,然后需要的时候现查其实是比较好的学习方式!不能贪大求全。

没有更多推荐了,返回首页