Linux体检系统的实现(记录我的大作业)

这是一个宝藏文章

找到这里说明你已经在烦恼大作业的事情了吧

没关系 我会出手 哈哈哈哈

好啦 步入正题
原理啥的我就不介绍了 知道你们不想看 所以嘛还是直接上代码比较合适
1、基本功能

#!/bin/bash
echo "开始进行体检:"
echo "电脑主机的基本情况:" > wfs.txt
uname -a >> wfs.txt
echo "输出目录的基本情况:" >> wfs.txt
sudo cat /etc/passwd >> wfs.txt
echo "基本组情况:" >> wfs.txt
sudo cat /etc/group >> wfs.txt
echo "硬盘情况:" >> wfs.txt
sudo fdisk -l >> wfs.txt
echo "进程情况:" >> wfs.txt
ps -A >> wfs.txt
echo "网络基本情况:" >> wfs.txt
ifconfig >> wfs.txt
sleep 0.5s
echo "准备就绪"
echo "清选下面的模式"
echo "##############################################################"
echo "#                                                            #"
echo "#                     1、主机的基本信息                       #"
echo "#                     2、输出到文件                           #"
echo "#                     3、输出到屏幕和文件                      #"
echo "#                                                            #"
echo "##############################################################"
echo "请选择模式(输入1或2或3)"
read a
case $a in
1)echo "模式1:输出到屏幕"
sleep 1s
echo "1.主机的基本情况:"
echo "1.主机的基本情况:"> wfs.txt
time1=$(date "+ %H:%M:%S")
echo $time1 >> wfs.txt
echo $time1
uname -a > 1.txt
uname -a >> wfs.txt
sleep 1s
uname -a
sleep 1s

echo "2.目录基本情况:"
echo "2.目录基本情况:">> wfs.txt
time2=$(date "+ %H:%M:%S")
echo $time2 >> wfs.txt
echo $time2
sleep 1s
ls -alF > 2.txt
ls -alF >> wfs.txt
ls -alF
sleep 1s

echo "3.用户基本情况:"
echo "3.用户基本情况:">> wfs.txt
time3=$(date "+ %H:%M:%S")
echo $time3 >> wfs.txt
echo $time3
sleep 1s
sudo cat /etc/passwd > 3.txt
sudo cat /etc/passwd >> wfs.txt
sleep 1s
sudo cat /etc/passwd
sleep 1s

echo "4.用户及组情况:"
echo "4.组基本情况:">> wfs.txt
time4=$(date "+ %H:%M:%S")
echo $time4 >> wfs.txt
echo $time4
sleep 1s
sudo cat /etc/group > 4.txt
sudo cat /etc/group >> wfs.txt
sleep 1s
sudo cat /etc/group
sleep 1s

echo "5.硬盘基本情况:"
echo "5.硬盘基本情况:">> wfs.txt
time5=$(date "+ %H:%M:%S")
echo $time5 >> wfs.txt
echo $time5
sleep 1s
sudo fdisk -l > 5.txt
sudo fdisk -l >> wfs.txt
sleep 1s
sudo fdisk -l
sleep 1s

echo "6.进程基本情况:"
echo "6.进程基本情况:">> wfs.txt
time6=$(date "+ %H:%M:%S")
echo $time6 >> wfs.txt
echo $time6
sleep 1s
ps -A > 6.txt
ps -A >>wfs.txt
sleep 1s
ps -A
sleep 1s

echo "7.网络基本情况:"
echo "7.网络基本情况:">> wfs.txt
time7=$(date "+ %H:%M:%S")
echo $time7 >> wfs.txt
echo $time7
sleep 1s 
ifconfig > 7.txt
ifconfig >> wfs.txt
sleep 1s
ifconfig
sleep 1s

# 覆盖写到桌面
cat wfs.txt > ~/wfs.txt
/usr/bin/mysql xiaobai -uroot -proot -e "truncate table \`stu1\` ;"
while read rows1
do
a1="$a1$rows1\n"
done < 1.txt

while read rows2
do
a2="$a2$rows2\n"
done < 2.txt

while read rows3
do
a3="$a3$rows3\n"
done < 3.txt

while read row4
do
a4="$a4$row4\n"
done < 4.txt

while read rows5
do
a5="$a5$rows5\n"
done < 5.txt

while read rows6
do
a6="$a6$rows6\n"
done < 6.txt

while read rows7
do
a7="$a7$rows7\n"
done < 7.txt
/usr/bin/mysql xiaobai -uroot -proot -e "INSERT INTO \`stu1\` 
VALUES ('主机基本情况','$a1','$time1'),
('目录基本情况','$a2','$time2'),
('用户基本情况','$a3','$time3'),
('组基本情况','$a4','$time4'),
('硬盘基本情况','$a5','$time5'),
('进程基本情况','$a6','$time6'),
('网络基本情况','$a7','$time7');"
;;

2)echo "2:输出到文件(输入目录及文件名):"
echo "输入目录的名称:"
read dir
echo "输入文件名称:"
read proj
mkdir $dir
touch $proj
cat wfs.txt > $proj
mv -n $proj $dir
sleep 1s
ls
echo "目录 $dir 和 文件 $proj 创建成功"
;;


3)echo "3:显示并输出到文件(输入目录和文件名)"
echo "请输入目录名:"
read dir
echo "请输入文件名:"
read proj
mkdir $dir
touch $proj
echo "目录 $dir 文件 $proj 创建成功"
echo "输出到屏幕文件:"
read dir
echo "输入文件名称:"
read proj
mkdir $dir
touch $proj
echo "目录 $dir 和 文件 $proj 创建成功"
echo "输出到屏幕和文件:"
sleep 2s
cat $proj
cat wfs.txt > $proj
mv -n $proj $dir
sleep 1s
ls 
esac

2、PHP网页发布数据库信息

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>系统体检结果</title>
</head>
<body>
<center>
    <?php
    include_once "web.php";
    ?>
    <h3>207的体检信息</h3>
    <table width="1000" border="1">
        <tr>
            <th>name</th>
            <th>text</th>
            <th>time</th>
        </tr>
        <?php
        //1.连接数据库
        try {
    
    
            $pdo = new PDO("mysql:host=127.0.0.1;dbname=xiaobai;", "root", "root");
        } catch (PDOException $e) {
    
    
            die("数据库连接失败" . $e->getMessage());
        }
        //2.解决中文乱码问题
        $pdo->query("SET NAMES 'UTF8'");
        //3.执行sql语句,并实现解析和遍历
        $sql = "SELECT * FROM `stu1` ";
        foreach ($pdo->query($sql) as $row) {
    
    
            echo "<tr>";
            echo "<td>{
    
    $row['name']}</td>";
            echo "<td>{
    
    $row['text']}</td>";
            echo "<td>{
    
    $row['time']}</td>";
            echo "<td>";
            echo "</tr>";

        }
        ?>
     </table>
</center>
</body>
</html>

3、C语言实现访问数据库

准备工作

1、安装MySQL:sudo apt-get install mysql-server mysql-client
2、安装MySQL开发包:sudo apt-get install libmysqlclient-dev

此时需要用到的头文件会出现在/usr/include/mysql/里

C语言主体代码块:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/*引入连接Mysql的头文件*/
#include "/usr/include/mysql/mysql.h"

/*定义一些数据库连接需要的宏*/
#define HOST "127.0.0.1" /*MySql服务器地址*/
#define USERNAME "root" /*用户名*/
#define PASSWORD "root" /*数据库连接密码*/
#define DATABASE "xiaobai" /*需要连接的数据库*/
// #define sql "select * from `table`;"
#define sql "select * from `stu1`;"

// 执行sql语句的函数
int main() {
    
    
    MYSQL my_connection; /*数据库连接*/ 
    int res;  /*执行sql语句后的返回标志*/ 
    MYSQL_RES* res_ptr; /*执行结果*/ 
    MYSQL_ROW result_row; /*按行返回查询信息*/ 
    int row, column; /* 定义行数,列数*/
    mysql_init(&my_connection);
    if (mysql_real_connect(&my_connection, HOST, USERNAME, PASSWORD, DATABASE, 0, NULL, CLIENT_FOUND_ROWS)) {
    
    
        printf("数据库连接成功!");
        /*设置查询编码为 utf8, 支持中文*/
        mysql_query(&my_connection, "set names utf8");
        res = mysql_query(&my_connection, sql);      
        if (res) {
    
    
            /*现在就代表执行失败了*/
            printf("Error: mysql_query !\n");
            /*不要忘了关闭连接*/
            mysql_close(&my_connection);
        } else {
    
    
            /*现在就代表执行成功了*/
            /*mysql_affected_rows会返回执行sql后影响的行数*/
            printf("%ld 行受到影响!\n", mysql_affected_rows(&my_connection));
            // 把查询结果装入 res_ptr
            res_ptr = mysql_store_result(&my_connection);
            // 存在则输出
            if (res_ptr) {
    
    
                // 获取行数,列数
                row = mysql_num_rows(res_ptr);
                column = mysql_num_fields(res_ptr);
                // 执行输出结果,从第二行开始循环(第一行是字段名)
                for (int i = 1; i < row + 1; i++) {
    
    
                    // 一行数据
                    result_row = mysql_fetch_row(res_ptr);
                    for (int j = 0; j < column; j++) {
    
    
                    	printf("%s\n", result_row[j]);
                    }
                    printf("\n");
                }
            }
            /*不要忘了关闭连接*/
            mysql_close(&my_connection);
        }
    } 
    else {
    
    
        printf("数据库连接失败!");
    }
}

end

有用的话记得+个关注和点个赞哦
最后祝大家都搞优秀~~~~~~~~~~~~~~~~~~哈哈哈哈哈~拜拜喽

猜你喜欢

转载自blog.csdn.net/qq_56992543/article/details/128402097
今日推荐