ELF> @hY@8 @@@@PP000pLp\p\pL\\88800hhhDDStd88800PtdBBB<<QtdRtdpLp\p\/lib64/ld-linux-x86-64.so.2 GNUGNUX-j6>7=ȋGNU  3 UA ,go Utg, F"{ba_ITM_deregisterTMCloneTable__gmon_start___ITM_registerTMCloneTable__cxa_finalize__libc_start_mainpr2serrgetopt_longoptargsg_get_llnumoptindsg_cmds_open_deviceconstruct_scsi_pt_objset_scsi_pt_cdbset_scsi_pt_senseset_scsi_pt_data_outdo_scsi_ptsg_cmds_process_respdestruct_scsi_pt_objsg_cmds_close_deviceset_scsi_pt_data_inget_scsi_pt_resid__printf_chksg_convert_errnosg_if_can2stderrsafe_strerrorsg_get_command_strhex2stderrget_scsi_pt_transport_errsg_get_category_sense_strget_scsi_pt_os_errputchar__stack_chk_faillibsgutils2-1.47.so.2libc.so.6GLIBC_2.3.4GLIBC_2.4GLIBC_2.34GLIBC_2.2.58ti Bii NXui cp\ x\\\\>\@\>\@\@\@\@\ A `A@` A``%A`)A`6A`CA`PAaWA a[A@a.A`adAaiAaqA_____a b^____ _(_ 0_ 8_ @_ H_ P_X_`_h_p_x__________HHOHtH5N%Nhhhhhhhhqhah Qh Ah 1h !h hhhhhhhhhhqhahQ%MD%MD% MD%MD%LD%LD%LD%LD%LD%LD%LD%LD%LD%LD%LD%LD%LD%LD%LD%LD%}LD%uLD%mLD%eLD%]LD%ULDAWL=LAVL5+AUATL%-UHSH(dH%(H$1D$Ll$H=(D1 AH$dH+%( H(D[]A\A]A^A_D$ffDD$(VfDD$D$AH=MH$HD$ D$-D$fDD$,fDD$ fDH=LdH|$HD$@D$fDD$D$.NLE19|V|$O|$|$H='1H5|)H=)1E1pD$/1HcЃLdK9}L%]'HLHt14KK9|ܿ =|$u<$MMg\$t$.LDT$DT$L5K1<$Lh|$-tHiD$ HD$HL$H5iKfL$HȉϹ H ffBK1' H$)$H$ HDŽ$DŽ$|$IHHHǺ LH$@L LL\$<LMAعH5!(Lj1LiŅE1|$EAc|$E1!}$fH$ )$H$L$ HDŽ$DŽ$|$ D$D$HIHǺ LD$H$@LP LL@\$<LMAعH5'L/D$@LD$|$D$~A A)ELx|$/|$(HfD$ t1H|$ cH5&1R|$,'DHH|$fAȉEI I ?\&1LH61HALH1H`LA1H<1HLA1HI1HH~vEADDH5%1e݅dA`DH=&TH=#CH=#1AfH=$1]H="1pH=,"1]LH=t$H1=M1LD$@L H=Y$H1|$H="1 LDd$#H1D$Dd$ff.H+H=h1H=J1 H=1ZH=1H=_1YHHsg_timestamp examples: It is possible that the target device containing a SCSI Logical Unit (LU) has a battery (or supercapacitor) to keep its RTC (real time clock) ticking during a power outage. More likely it doesn't and its RTC is cleared to zero after a power cycle or hard reset. Either way REPORT TIMESTAMP returns a 48 bit counter value whose unit is a millisecond. A heuristic to determine if a date or elapsed time is being returned is to choose a date like 1 January 2000 which is 30 years after the Unix epoch (946,684,800,000 milliseconds) and values less than that are elapsed times and greater are timestamps. Observing the TIMESTAMP ORIGIN field of REPORT TIMESTAMP is a better method: $ sg_timestamp -o -N /dev/sg1 Device clock initialized to zero at power on or by hard reset $ sg_timestamp -oo -N /dev/sg1 0 $ sg_timestamp /dev/sg1 3984499 $ sg_timestamp --elapsed /dev/sg1 01:06:28.802 The last output indicates an elapsed time of 1 hour, 6 minutes and 28.802 seconds. Next set the clock to the current time: $ sg_timestamp --seconds=`date +%%s` /dev/sg1 $ sg_timestamp -o -N /dev/sg1 Device clock initialized by SET TIMESTAMP command Now show that as an elapsed time: $ sg_timestamp -e /dev/sg1 17652 days 20:53:22.545 That is over 48 years worth of days. Lets try again as a data-time stamp in UTC: $ date -u -R --date=@`sg_timestamp -S /dev/sg1` Tue, 01 May 2018 20:56:38 +0000 Usage: sg_timestamp [--elapsed] [--help] [--hex] [--milliseconds=MS] [--no-timestamp] [--origin] [--raw] [--readonly] [--seconds=SECS] [--srep] [--verbose] [--version] DEVICE where: --elapsed|-e show time as ' days hh:mm:ss.xxx' where '.xxx' is the remainder milliseconds. Don't show ' days' if is 0 (unless '-e' given twice) --help|-h print out usage message, use twice for examples --hex|-H output response in ASCII hexadecimal --milliseconds=MS|-m MS set timestamp to MS milliseconds since 1970-01-01 00:00:00 UTC --no-timestamp|-N suppress output of timestamp --origin|-o show Report timestamp origin (def: don't) used twice outputs value of field 0: power up or hard reset; 2: SET TIMESTAMP --raw|-r output Report timestamp response to stdout in binary --readonly|-R open DEVICE read only (def: read/write) --seconds=SECS|-s SECS set timestamp to SECS seconds since 1970-01-01 00:00:00 UTC --srep|-S output Report timestamp in seconds (def: milliseconds) --verbose|-v increase verbosity --version|-V print version string and exit Performs a SCSI REPORT TIMESTAMP or SET TIMESTAMP command. The timestamp is SET if either the --milliseconds=MS or --seconds=SECS option is given, otherwise the existing timestamp is reported in milliseconds. The DEVICE stores the timestamp as the number of milliseconds since power up (or reset) or since 1970-01-01 00:00:00 UTC which also happens to be the time 'epoch'of Unix machines. Use '-hh' (the '-h' option twice) for examples. bad argument to '--milliseconds=MS' bad argument to '--seconds=SECS' unrecognised option code 0x%x ?? Unexpected extra argument: %s Not in DEBUG mode, so '-vV' has no special action either --milliseconds=MS or --seconds=SECS may be given, not both set timestamp parameter list: timestamp parameter data length too short, expect >= 10, got %d Some error occurred, try again with '-v' or '-vv' for more information initialized to zero at power on or by hard resetinitialized by SET TIMESTAMP commandSet timestampReport timestampehHm:NorRs:SvV1.14 20210830version: %s missing device name! open error: %s: %s Set timestamp cdb: %s %s: out of memory set timestamp Report timestamp cdb: %s report timestampParameter data returned: Device clock %s TIMESTAMP_ORIGIN=%d %d day%s %02d:%02d:%02d.%03d %lu %s command not supported %s command: %s close error: %s sg_timestamp failed: reserved [0x1]initialized by other methodreserved [0x4]reserved [0x5]reserved [0x6]reserved [0x7]elapsedhelphexmillisecondsno_timestampno-timestamporiginrawreadonlysrepverboseversion0@0e`Psg_ll_set_timestampsg_ll_rep_timestamp;8l<T|zRx 0&D$4FJ w?:*3$"\tQDk E XL FII B(H0D8I 8D0A(B BBBD \>@>@@@@ A"8  t p\x\o o ^p   oo oo` o\0@P`p 0@P`pAe Ah%AH)Am6ANCANPAoWAr[AR.AsdASiAvqAVGA$3a1F GA$3g1073pq GA* GA$annobin gcc 11.3.1 20220421GA$plugin name: annobin GA$running gcc 11.3.1 20220421 GA*GA*GA! GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*GOWjGA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA$3a1P GA*FORTIFY q GA+GLIBCXX_ASSERTIONSsg_timestamp-1.47-9.el9.x86_64.debug΢@7zXZִF!t/']?Eh=ڊ2N.򑱎,OwY혼#H`D yS^'Ps(d,܅\'Q8'ulԖԣt9 |l[O%4:cAr TR|4Z60^/ͪ|TFH 8]N:ciJ,SLgo&ϖa)Hxe I$7+:6b-_9Xϰ~r .{Zm8G10T?tf^ l-HٌFxX/% _^xz6f؇]s(onbGcvnZ~u"iI7Ym wĐVCf UH`}36`-&aI`6s mԤтG~VB+vDNcJlݹS?OEIN:A-}.BV "0N#Bhh ؤzhixsrAϮA&$PB)9SiaxQ>m`AdyQ#mò[Xņ ,YxZ:c6c@%%cʔ&*VT1t_E𲸺|顝޸\ DLP*tGS !{WP(#A̖jW l|t3*;ȟp;cUO$m'\ᳵ5ޒm1@CmgbqpNz(b 1$-p-qToAwH2-m`? gn''M.z* 6gYZ.shstrtab.interp.note.gnu.property.note.gnu.build-id.note.ABI-tag.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.got.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata 880&hh$9 Go(Q Yoao` ` Bno P} B p  pp t t 00BB<BBp\pLx\xL\L` \L^N`P aQ@  QL ,T,/XT$X>