[Bug][API-644][syslog]Example Add the syslog configuration file backup mechanism(new)
Change-Id: I25324df4821948f0ed9360f09c025e3b7d9e32f2
diff --git a/meta/meta-mediatek-ivt/recipes-core/busybox/busybox_%.bbappend b/meta/meta-mediatek-ivt/recipes-core/busybox/busybox_%.bbappend
index 470d357..bfa00c9 100755
--- a/meta/meta-mediatek-ivt/recipes-core/busybox/busybox_%.bbappend
+++ b/meta/meta-mediatek-ivt/recipes-core/busybox/busybox_%.bbappend
@@ -1,3 +1,4 @@
+
FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
SRC_URI_append = " \
@@ -32,6 +33,9 @@
install -m 0755 ${WORKDIR}/coredump-start ${D}/bin/
install -m 0755 ${WORKDIR}/coredump-handler.sh ${D}/bin/
install -m 0644 ${WORKDIR}/coredump.service.in ${D}${systemd_unitdir}/system/coredump.service
+ #lt add 2022.11.11 start
+ install -m 0755 ${WORKDIR}/syslog.conf ${D}/bin/
+ #lt add 2022.11.11 end
if [ "${BUILD_LOAD_TYPE}" = "user" ]; then
echo "*.err /var/log/syslog.log"> ${D}/etc/syslog.conf
else
diff --git a/src/lynq/framework/lynq-logrotate-service/src/lynq_logrotate_service.c b/src/lynq/framework/lynq-logrotate-service/src/lynq_logrotate_service.c
index a5a9918..264bb11 100755
--- a/src/lynq/framework/lynq-logrotate-service/src/lynq_logrotate_service.c
+++ b/src/lynq/framework/lynq-logrotate-service/src/lynq_logrotate_service.c
@@ -48,11 +48,97 @@
return write_len;
}
+/**
+ * @brief check syslogd exist or no
+ *
+ * @param void
+ * @return 0:exist -1:no
+ */
+static int lynq_check_syslogd(void)
+{
+ FILE *fp;
+ char *lynq_get_syslogd_cmd = "ps -ef | grep syslogd";
+ char lynq_syslogd_deploy_buf[128] ={0};
+ char *lynq_syslogd_deploy_raw = "/sbin/syslogd";
+
+ fp=popen(lynq_get_syslogd_cmd,"r");
+ if(NULL == fp)
+ {
+ return -1;
+ }
+ while (NULL != fgets(lynq_syslogd_deploy_buf,sizeof(lynq_syslogd_deploy_buf),fp))
+ {
+ printf("syslogd:%s\n",lynq_syslogd_deploy_buf);
+ if(NULL != strstr(lynq_syslogd_deploy_buf,lynq_syslogd_deploy_raw))
+ {
+ pclose(fp);
+ return 0;
+ }
+ }
+ pclose(fp);
+ return -1;
+}
+
+/**
+ * @brief monitor syslogcof
+ *
+ * @param void
+ * @return 0:success -1:fail
+ */
+static int lynq_monitor_syslogcof(void)
+{
+ FILE *fp;
+ char *lynq_get_syslog_deploy = "/etc/syslog/syslog.conf";
+ char lynq_syslog_deploy_buf[128] ={0};
+ char *lynq_syslog_deploy_raw = "/var/log/syslog.log";
+
+ fp=fopen(lynq_get_syslog_deploy,"r");
+ if(NULL == fp)
+ {
+ return -1;
+ }
+ if((sizeof(lynq_syslog_deploy_buf)) > (fread(lynq_syslog_deploy_buf,sizeof(char),sizeof(lynq_syslog_deploy_buf),fp)))
+ {
+ if(ferror(fp))
+ {
+ fclose(fp);
+ return -1;
+ }
+ printf("syslog:%s\n",lynq_syslog_deploy_buf);
+ }
+ fclose(fp);
+
+ if(NULL == strstr(lynq_syslog_deploy_buf,lynq_syslog_deploy_raw))
+ {
+ system("cp /bin/syslog.conf /etc/syslog/");
+ system("syslogctl restart");
+ for(int j = 0; j < 3; j++) //Check whether syslogd exists and does not exist 3 times
+ {
+ if(-1 == lynq_check_syslogd())
+ {
+ system("syslogctl restart");
+ printf("syslogctl restart again\n");
+ }
+ else
+ {
+ printf("syslogctl restart success\n");
+ return 0;
+ }
+ }
+ return -1;
+ }
+ return 0;
+}
+
int main()
{
char muclog[1024] = {0};
LYLOGEINIT(USER_LOG_TAG);
LYLOGSET(4);
+ if(-1 == lynq_monitor_syslogcof())
+ {
+ printf("lynq monitor syslogcof popen fail\n");
+ }
system("/usr/bin/lynq-default");
system("systemctl stop ntpd");
lynq_fota_func();