该locate程序findutils扫描一个或多个文件名数据库并显示任何匹配项。find如果文件在上次文件名数据库更新期间存在,这可以用作非常快速的命令。
现在有很多种数据库,
那么updatedb更新和locate使用什么样的数据库呢?  
谢谢。
我有一个每天增长大约 200,000 行的文件,它都是由三行块组成的:
1358726575123       # key
    Joseph Muller   # name
    carpenter       # job
9973834728345
    Andres Smith
    student
7836472098652
    Mariah Anthony
    dentist
Run Code Online (Sandbox Code Playgroud)
现在,我有另一个文件,我从中提取了大约 10,000 个关键模式,例如1358726575123. 然后我for用这些模式运行一个循环,并且必须根据第一个文件检查它们。如果文件不包含此类模式,我会将模式保存在第三个文件中以供进一步处理:
for number in $(grep -o '[0-9]\{12\}' file2); do  # finds about 10.000 keys
     if ! grep -q ^$number$ file1; then           # file1 is a huge file
         printf "$number\n" >>file3               # we'll process file3 later
     fi
done
Run Code Online (Sandbox Code Playgroud)
示例代码 grep 一个巨大的文件 10,000 次,我在一整天内大约每分钟运行一次这个循环。
由于巨大的文件不断增长,我该怎么做才能使这一切更快并节省一些 CPU?我想知道以某种方式通过其键(如果是,如何?)或使用 db 而不是纯文本对文件进行排序会有所帮助...
我知道unix的键/值库(berkeleydb、gdbm、redis ... )。但是在我开始编码之前,我想知道是否有一个适用于 unix 的标准工具可以让我执行以下操作:
$ tool -f datastore.db put "KEY" "VALUE"
$ tool -f datastore.db put -f file_key_values.txt
$ tool -f datastore.db get "KEY"
$ tool -f datastore.db get -f file_keys.txt
$ tool -f datastore.db remove "KEY"
$ etc...
Run Code Online (Sandbox Code Playgroud)
谢谢
我有一个 postgres 9.1 服务器在 Ubuntu 12.04 云服务器上的默认端口 5432 上运行。
我想打开端口,这样我就可以进行远程查询——但是我必须在 IP 表上打开端口,这需要我指定一个协议。这个文档没有提到 TCP/UDP 等。
我应该在 IP 表中允许什么协议?
我正在使用 MySQL 数据库并使用 Ubuntu Linux 机器。
我的数据库名为db_test,我注意到在路径下/var/lib/mysql/db_test,有文件后缀为.frm, .MYD,.MYI如下所示:
/var/lib/mysql/db_test# ls
cars.frm 
cars.MYD 
cars.MYI
customers.frm
customers.MYD
customers.MYI
departments.frm
departments.MYD
departments.MYI
... 
Run Code Online (Sandbox Code Playgroud)
似乎每个.frm, .MYD,.MYI文件组都映射到数据库中的一个表。
我有以下两个问题要问:
这三个文件究竟在做什么?
如果我在路径/var/lib/mysql/say下创建一个新目录db_test_2,并将db_test_1目录中的每个文件复制到db_test_2,它还会创建一个db_test_2与db_test_1's具有完全相同内容(表)的新数据库吗?
此物理数据库文件移动操作是否会创建与以下命令行操作相同的结果:
转储数据库db_test_1出
创建一个新的数据库 db_test_2 
然后将db_test_1数据库转储回新数据库db_test_2?
如果是这样,似乎移动文件比mysqldump用于复制数据库(或将数据从一个数据库导入到 MySQL 中的另一个数据库)要快得多。对此有何意见?
我正在使用最新的 Linux Mint。我想知道是否可以为数据库备份创建一个特殊的 cronjob。
在我的/etc/cronjob文件中,我有以下代码:
# Minute   Hour   Day of Month       Month          Day of Week        Command    
# (0-59)  (0-23)     (1-31)    (1-12 or Jan-Dec)  (0-6 or Sun-Sat)                
30        4          *            *                1-6            /home/users/backup.sh
Run Code Online (Sandbox Code Playgroud)
在我的/home/users/backup.sh我有:
mysqldump -uroot -p MyDatabase > /home/users/backup_MyDB/full_myDB.sql
Run Code Online (Sandbox Code Playgroud)
而不是full_myDB.sql我想要像2014-04-04_full_myDB.sql根据我们拥有的日期动态添加日期的地方。
如果 SQL 备份文件早于一周,我希望 cronjob自动删除它。
我最近一直在努力解决透明大页面性能问题,并注意到许多数据库系统建议将其关闭。我说的是 Oracle、Postgresql、MySQL、Cassandra、NuoDB、Redis、Hadoop 等等。
举些例子:
所以我想知道:什么样的工作负载可以从这个功能中受益?
我安装了一个名为的 Web 应用程序scrumblr,redis用作数据库。
我试图做的是删除所有 30 天不活动或 30 天内未访问的密钥。
我跑了
redis-cli KEYS*
Run Code Online (Sandbox Code Playgroud)
它返回所有键,但它不显示时间戳。
是否有我可以每天在特定时间运行的脚本或命令,它会找出所有不活动的键并删除它们?
Braiam表示,Firefox 将登录网站的密码数据存储在~/.mozilla/firefox/key3.db和~/.mozilla/firefox/signons.sqlite文件中。这些文件可以使用某些 sqlite 编辑器来读取。  
我尝试从 Firefox 的数据库查询网站的用户名和密码(例如https://sourceforge.net/account/login.php )。我无法通过 Firefox 来完成此操作,因为我的 Firefox GUI 无法正常工作,而且我对使用数据库来完成这项工作相当陌生并且也有兴趣学习。
key3.db和的不同作用是什么signons.sqlite?sqlite3我在互联网上搜索,我应该使用打开数据库是否正确
?
$ sqlite3 key3.db 
SQLite version 3.7.9 2011-11-01 00:52:41
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
Error: file is encrypted or is not a database
Run Code Online (Sandbox Code Playgroud)
我猜失败的原因是,在 Firefox 中,我设置了一个主关键字来访问它存储的密码。我应该如何查询给定网站的密码?
我的操作系统是 Ubuntu,文件类型如下key3.db:
$ file key3.db 
key3.db: Berkeley DB 1.85 (Hash, version 2, native byte-order)
Run Code Online (Sandbox Code Playgroud)为了从给定的网站名称查询密码,我应该阅读和学习什么?
阅读http://www.sqlite.org/cli.html有帮助吗? …