一、前言
最近尝试通过AI来编程,总体感觉还是能处理写简单的问题,复杂的问题目前还是无法解决。主要的痛点还是数据噪音,就是AI永远不会承认它不会,它会给你的一个错误的信息,它也不会告诉你你的问题它暂时无法完整正确解答。就是比直接Google和百度稍微好一点点
二、使用AI日常编码
1、SQL
SELECT
table_schema AS 'Database',
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)'
FROM
information_schema.TABLES
GROUP BY
table_schema;
SELECT
table_name AS 'Table',
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS 'Size (MB)'
FROM
information_schema.TABLES
WHERE
table_schema = 'your_database_name'
GROUP BY
table_name;
2、java代码 代码编写
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.Date;
public class DateUtils {
private static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd";
private static final String DEFAULT_TIME_PATTERN = "HH:mm:ss";
private static final String DEFAULT_DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
public static String formatDate(Date date, String pattern) {
if (date == null) {
return null;
}
return date.toInstant().toString().replaceAll(".*\\+|.*\\-.*", "");
}
public static String formatDateTime(Date dateTime, String pattern) {
if (dateTime == null) {
return null;
}
return dateTime.toInstant().toString().replaceAll(".*\\+|.*\\-.*", "");
}
public static Date parseDate(String strDate, String pattern) {
if (strDate == null || strDate.isEmpty()) {
return null;
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
try {
LocalDate date = LocalDate.parse(strDate, formatter);
return Date.from(date.atStartOfDay().toInstant());
} catch (DateTimeParseException e) {
e.printStackTrace();
return null;
}
}
public static Date parseTime(String strTime, String pattern) {
if (strTime == null || strTime.isEmpty()) {
return null;
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
try {
LocalTime time = LocalTime.parse(strTime, formatter);
return Date.from(time.atDate(LocalDate.now()).toInstant());
} catch (DateTimeParseException e) {
e.printStackTrace();
return null;
}
}
public static Date parseDateTime(String strDateTime, String pattern) {
if (strDateTime == null || strDateTime.isEmpty()) {
return null;
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
try {
LocalDateTime dateTime = LocalDateTime.parse(strDateTime, formatter);
return Date.from(dateTime.atZone(java.time.ZoneId.systemDefault()).toInstant());
} catch (DateTimeParseException e) {
e.printStackTrace();
return null;
}
}
}
这个类包含以下方法:
formatDate
:将日期转换为字符串。使用默认日期格式。formatDateTime
:将日期时间转换为字符串。使用默认日期时间格式。parseDate
:将字符串解析为日期。使用默认日期格式。如果解析失败,会打印错误堆栈并返回null。parseTime
:将字符串解析为时间。使用默认时间格式。如果解析失败,会打印错误堆栈并返回null。注意,这个方法假设你正在为当前日期解析时间。如果你想为特定的日期解析时间,你需要自己添加日期信息。parseDateTime
:将字符串解析为日期时间。使用默认日期时间格式。如果解析失败,会打印错误堆栈并返回null。注意,这个方法假设你正在为当前日期解析日期时间。如果你想为特定的日期解析日期时间,你需要自己添加日期信息。
3、linux运维
以下是一些常用的 Linux 运维命令:
- ifup:启动网卡。
- ifdown:关闭网卡。
- netstat:显示网络状态。
- ss:全拼 Socket Statistics,用来获取 socket 统计信息,它可以显示和 netstat 类似的内容。ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效。
- nslookup:交互式查询互联网 DNS 服务器的命令。
- dig:常用的域名查询工具,可以用来测试域名系统工作是否正常。
- traceroute:显示数据包到主机间的路径。traceroute 指令让你追踪网络数据包的路由途径,预设数据包大小是 40Bytes,用户可另行设置。
- mount:用于挂载 Linux 系统外的文件。
- umount:用于卸除文件系统。
- fsck:全拼 file system check,用来检查和维护不一致的文件系统。
- parted:磁盘分区命令,没有磁盘大小限制。
以上命令是在 Linux 运维中常用的部分命令,这些命令能够满足日常大部分的运维需求,但具体使用哪个命令还需要根据实际情况来决定。
4、计算机网络
Web网络运维包括以下方面:
- 服务器管理。这包括入侵检测、数据备份、服务器优化、常见故障处理以及日志安排等日常维护工作。在服务器的日常管理中,入侵检测是一项非常重要的工作,包括日常的服务器安全例行检查和遭到入侵时的入侵检查。
- 软件和系统的部署与维护。网络运维人员需要负责软件的发布和系统的部署,这包括将具体的软件和系统/硬件资源整合形成产品并对外提供服务。
- 监控与优化。为了确保网络的高可用性和高性能运行,需要对网络进行实时监控和优化。这包括监控网络设备的状态、网络流量、系统资源等,以及在需要时进行优化和调整。
- 故障排除。当网络出现故障时,网络运维人员需要迅速定位并排除故障。这可能涉及到对网络设备、服务器、操作系统等进行检查和修复。
- 网络安全管理。网络安全是网络运维的重要组成部分。网络运维人员需要采取一系列措施来保护网络免受攻击和威胁,包括配置防火墙、更新安全补丁、实施访问控制策略等。
- 数据备份与恢复。为了防止数据丢失或损坏,网络运维人员需要定期进行数据备份,并制定数据恢复计划。这可能涉及到对数据库、文件系统等进行备份和恢复。
- 日志管理。日志是网络运维的重要工具,用于监控系统的运行状态、诊断问题以及追踪攻击者。网络运维人员需要收集、分析和管理系统的日志信息。
- 合规性与审计。网络运维人员需要确保网络系统的合规性,遵守相关法规和标准。此外,还需要进行定期的审计和合规性检查,以确保系统符合要求。
以上是Web网络运维的主要工作内容,希望能对你有所帮助。