今天早上想打開dapeng-cli監(jiān)控一下線上服務(wù), 登錄服務(wù)器后, 沒想到居然打不開:
[logview@monitor-elk dapeng-cli]$ ./dapengCli
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/dapeng-cli/plugins/jline-2.14.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/dapeng-cli/plugins/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
Exception in thread "main" java.util.ServiceConfigurationError: org.clamshellcli.api.Plugin: Provider org.clamshellcli.impl.CliConsole could not be instantiated
at java.util.ServiceLoader.fail(ServiceLoader.java:232)
at java.util.ServiceLoader.access$100(ServiceLoader.java:185)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
at org.clamshellcli.core.Clamshell$Runtime.loadServicePlugins(Clamshell.java:66)
at cli.Run.main(Run.java:105)
Caused by: java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no jansi in java.library.path, No such file or directory]
at org.fusesource.hawtjni.runtime.Library.doLoad(Library.java:182)
at org.fusesource.hawtjni.runtime.Library.load(Library.java:140)
at org.fusesource.jansi.internal.CLibrary.<clinit>(CLibrary.java:42)
at org.fusesource.jansi.AnsiConsole.wrapOutputStream(AnsiConsole.java:48)
at org.fusesource.jansi.AnsiConsole.<clinit>(AnsiConsole.java:38)
at org.clamshellcli.impl.CliConsole.<clinit>(CliConsole.java:71)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)
... 4 more
no jansi in java.library.path
, 這可是從來沒出現(xiàn)過的錯誤, 通過各種花式搜索, 找到的都是不著邊際的答案.
然后過了10來分鐘, 不少業(yè)務(wù)團(tuán)隊過來抱怨定時任務(wù)失效. 我們的定時任務(wù)也是在上面的服務(wù)器中通過crontab來觸發(fā)定時任務(wù)的.
這時候, 發(fā)現(xiàn)定時任務(wù)只能查看不能修改, 現(xiàn)狀如下:
[root@monitor-elk ~]# crontab -l
*/1 * * * * sh /data/scripts/synccp.sh /data
05 0 * * * sh /data/scripts/serviceMonitor.sh /data/logs/
[root@monitor-elk ~]# crontab -e
/tmp/crontab.nUAdxv: 沒有那個文件或目錄
然后一番折騰, 運(yùn)維大哥發(fā)現(xiàn)是/tmp目錄給刪除了(早上有人改了某個腳本, 該腳本會定時刪除/tmp目錄). 重建/tmp目錄后, 一切回復(fù)正常(當(dāng)然也要修正那個錯誤的腳本).