what is the .stt file used for in TDengine database ?
under the dataDir some of the file is called .stt like this :
ssn#TDengine:/var/lib/taos/vnode/vnode14$ cd ..
ssn#TDengine:/var/lib/taos/vnode$ ls -ltR | grep -i stt
-rwxrwxrwx 1 root root 4096 Jan 11 10:19 v18f1736ver22.stt
-rwxrwxrwx 1 root root 4096 Jan 11 10:19 v19f1736ver16.stt
-rwxrwxrwx 1 root root 4096 Jan 10 20:00 v16f1736ver18.stt
-rwxrwxrwx 1 root root 4096 Jan 10 20:01 v17f1736ver27.stt
may I know what is it for ?
a specific description for this file ,what is it used ,does it impact the database performance,etc.
the .sst file is equivalent to the .last file in the TDengine database 2.0
it is used to store the data fragment that smaller than minrows configuration .
I’ve tried fork, setresgid, setresuid and execvpe — doesn’t work.
Specifically, no errors are returned anywhere, the child process starts OK, I have confirmed all 6 magic numbers returned by getresuid and getresgid match, yet the child process doesn’t have the required permissions.
The files in question are in the /dev/input/ folder. Here’s the permissions:
drwxr-xr-x 3 root root 180 Sep 23 19:47 .
drwxr-xr-x 17 root root 4120 Sep 23 19:47 ..
drwxr-xr-x 2 root root 160 Sep 23 19:47 by-path
crw-rw---- 1 root input 13, 64 Sep 23 19:47 event0
crw-rw---- 1 root input 13, 65 Sep 23 19:47 event1
crw-rw---- 1 root input 13, 66 Sep 23 19:47 event2
crw-rw---- 1 root input 13, 67 Sep 23 19:47 event3
crw-rw---- 1 root input 13, 68 Sep 23 19:47 event4
crw-rw---- 1 root input 13, 69 Sep 23 19:47 event5
The user is a member of the input group, that’s why under normal circumstances it can access these files. However, the process launched with fork/setresgid/setresuid/execvpe can’t access these files.
Here’s relevant lines from the strace log, the log was made with -ff option i.e. only includes a single process:
setresgid(10000, 10000, 10000) = 0
setresuid(10000, 10000, 10000) = 0
execve("/usr/local/bin/dotnet", ["/usr/local/bin/dotnet", "/home/user/launcher/Debug/Desktop.dll"], 0xffffea463f50 /* 1 var */) = 0
.. much later
openat(AT_FDCWD, "/dev/input/event0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 EACCES (Permission denied)
The problem was indeed extra groups. Contrary to my expectation, setresuid does not refresh the list of additional groups.
To set them up, the launcher process first needs to call getgrouplist to query the list of additional groups for the target user, then after the fork call setgroups to apply these values.
The complete sequence of kernel calls to implement a Linux equivalent of CreateProcessAsUser is following:
getgrouplist, fork, chdir, setresgid, setgroups, setresuid, execvpe
Note how setresuid needs to be the very last step before the execvpe. The reason for that, after that call the forked process no longer has permissions to modify these security-related things.
P.S. I wonder how many security bugs in Linux software were caused by the developers forgetting to update that list of extra groups when switching user accounts in their programs?
How to destine the configure output files path?
in some case I only can configure like this:
/root/src/my_software-1.8.2/configure
in my case, I can not cd into /root/src/my_software-1.8.2/.
I will generate these files to /:
2 00:06 ..
-rwxr-xr-x. 1 root root 0 Sep 27 07:32 .dockerenv
-rw-r--r--. 1 root root 24790 Oct 2 00:06 Makefile
drwxr-xr-x. 2 root root 53 Sep 28 11:24 att
lrwxrwxrwx. 1 root root 7 May 11 2019 bin -> usr/bin
-rw-r--r--. 1 root root 3934 Oct 2 00:06 config.h
-rw-r--r--. 1 root root 31584 Oct 2 00:06 config.log
-rwxr-xr-x. 1 root root 33874 Oct 2 00:06 config.status
I want destine these generated files to special output path(/root/src/my_software-1.8.2/)? how?
EDIT-01
In fact, I use the command to execute script:
docker exec -it centos-03 "my command"
but I can not execute the compound command like this:
docker exec -it centos-03 "cd /root/src/my_software-1.8.2/;./configure"
so I want use one command to do that.
Below is the file i want to delete and this fall under january month.
How to delete the january month file?
Let me know if this command can be use
rm -r 2020-01*.csv
i want to delete only .csv and not the targz file
Tar File
-rw-r--r--. 1 root root 252611170 Jul 23 17:33 2020-01-11-15Jan.tar.gz
File
-rw-r--r--. 1 root root 373401287 Jan 31 23:58 2020-01-31-22-58-39.done.csv
-rw-r--r--. 1 root root 386130576 Feb 1 00:58 2020-01-31-23-58-39.done.csv
Thanks for notice.
I'm a new one for solr, and I'm using the IndexMergeTool to merge solr index on 2 servers.
Indexes on server_1 has size 1.4GB with lots of files, and on server_2, the size is 380MB.
After my running:
java -cp /migration/lucene-2.9.1/lucene-core-2.9.1.jar:/migration/lucene-2.9.1/contrib/misc/lucene-misc-2.9.1.jar org.apache.lucene.misc.IndexMergeTool /tmp/newIndex /server_1/data/solr/data/index /server_2/data/solr/data/index
I got only one huge file:
$ ls -lah /tmp/newIndex/
total 1.5G
drwxr-xr-x 2 root root 4.0K Sep 24 08:08 .
drwxrwxrwt 9 root root 4.0K Sep 24 08:06 ..
-rw-r--r-- 1 root root 1.5G Sep 24 08:08 _3.cfs
-rw-r--r-- 1 root root 284 Sep 24 08:08 segments_2
-rw-r--r-- 1 root root 20 Sep 24 08:08 segments.gen
Is it correct? If it will harm the performance when there is only one huge file like that?
Or is there any options for the tool that I can set it to generate multiple small files?
Thanks again for notice.
Yes, it's expected behavior.
No, it will not affect your
performance, your index will be the same, just with more docs (but
you do that for your needs, right?), so it's same as you will add more docs by yourself.
No, there is no any options
for this tool to generate small files.