Questions tagged «unix»

Unix是一种多任务,多用户计算机操作系统,最初由Bell Labs的一群AT&T员工于1969年开发。

3
使libmagic / file检测.docx文件
从其他地方可以看到 docx,xl​​sx和pttx是ZIP。将它们上传到我的Web应用程序时,file(通过libmagic和python-magic)将其检测为ZIP。 我将文件的内容作为Blob存储在数据库中,但是自然地我不想让用户相信它是哪种文件类型。因此,我想file在下载过程中信任并自动生成一个文件名。 我知道可以修改,/etc/magic但是格式(magic(5))对我来说太复杂了。我在Debian bugs上找到了关于该问题的bug报告,但是由于它是从2008年开始的,因此似乎无法很快得到修复。 我猜我唯一的选择是确实信任用户(但仍将内容存储为blob),并且仅根据文件名检查文件扩展名。这样,我可以禁止某些扩展并允许其他扩展。当用户重新下载他的文件时,他可以通过任何方式上传它。但是,如果与他人共享文件,此解决方案是不安全的,因为您可以简单地重命名文件以允许上传。 有任何想法吗? 最后,我找到了docx等的幻数列表,但无法将其转换为magic(5)格式。
17 linux  debian  unix  mime 

6
Git-带有git pull的接收后钩子“未能找到有效的git目录”
这很奇怪,但是在设置git存储库并创建带有以下内容的接收后钩子时: echo "--initializing hook--" cd ~/websites/testing echo "--prepare update--" git pull echo "--update completed--" 钩子确实可以运行,但是它永远无法正常运行git pull: 6bfa32c..71c3d2a master -> master --initializing hook-- --prepare update-- fatal: Not a git repository: '.' Failed to find a valid git directory. --update completed-- 所以我现在问自己,如何使挂钩在接收后更新克隆? 在这种情况下,运行进程的用户是相同的,并且所有内容都在用户文件夹中,所以我真的不明白...因为如果我手动进入 cd ~/websites/testing git pull 它没有任何问题... 任何帮助,将不胜感激 非常感谢
17 unix  git  hook 

8
通过接口监视网络流量
有没有一种方法可以监视特定网络接口(例如eth0)上的流量(例如,实时了解利用率)? 这里的问题是包装盒上的工具集是固定的,并且几乎是储备的RHEL部署,因此无法使用附加工具。 在这里寻找基本的和通常存在的东西,例如iostat。

4
/ dev / sda和/ dev / sda1之间的区别
我知道/ dev / sda是​​原始设备,/ dev / sda1是分区或虚拟设备。 但是我对为什么sda#仅在某些时间出现或仅在某些系统上出现有些困惑。是什么原因导致这种情况发生?也许sda#驱动器不出现的时间是未分区的时间?也许在硬件上不一样吗? 为什么我可以同时安装两者?(有时)分区不应该是可安装的分区吗? 您可以提供的任何资源或颜色将不胜感激。先感谢您。
17 linux  unix  mount  hard-drive 

4
是否有实用程序可以从环境文件中读取环境变量,然后运行命令(比工头轻巧)?
foreman 可以读取.env文件并从内容中设置环境变量,然后运行程序 例如 foreman run -e vars.env myprogram ...但是它还有很多其他功能(并且主要涉及使用其Procfile格式启动内容)。 是否有一个更简单的(Linux / Unix)工具专门用于读取.env文件并在新环境中执行命令? 示例环境文件(来自http://ddollar.github.io/foreman/#ENVIRONMENT): FOO=bar BAZ=qux

1
将进程放在后台而不停止-(ctrl + z)?
如果我通过在命令行中正常键入启动进程,例如 wget http://site.com/bigfile.zip 然后决定将其移到后台,我知道我可以使用类似的东西ctrl+z,然后bg 1(或jobs首先需要获取ID)将其放在后台。 我的问题是,是否有一种方法可以将作业从前台直接移到后台而又不停止它-就像除此之外的另一种快捷方式一样ctrl+z。 我也意识到我可以追加&到原始命令的末尾以在后台启动它,但是问题是关于何时在前台启动一个进程然后意识到要将其移到后台。

3
文件名的首选格式,包括时间戳
众所周知,“ unix”在文件中可以包含除“ /”和“ \ 0”以外的任何内容,但是sysadmins的使用偏好通常要小得多,这主要是因为没有人喜欢使用空格作为输入...以及许多东西“:”和“ @”等特殊含义。 最近,我还看到了在文件名中使用时间戳的另一种情况,并且在使用不同的格式进行播放以使其“更好”之后,我发现我会尝试找到“最佳实践”,而没有发现我只想问一下这里,看看人们的想法。 可能的“常见”解决方案(p =前缀和s =后缀): syslog / logrotate / DNS格式: p-%Y%m%d-suffix = prefix-20110719-s p-%Y%m%d%H%M-suffix = prefix-201107191732-s p-%Y%m%d%H%M%S-suffix = prefix-20110719173216-s 优点: 这是“常见的”,因此“足够好”可能比“最佳”好。 没有奇怪的字符。 容易将“日期/时间斑点”与其他所有内容区分开。 缺点: 仅日期的版本不容易阅读,包括时间在内使我流血,秒也只是“笑”。 假设TZ。 ISO-8601-格式 p-%Y-%m-%d-s = p-2011-07-19-s p-%Y-%m-%dT%H:%M%z-s = p-2011-07-19T17:32-0400-s p-%Y-%m-%dT%H:%M:%S%z-s = p-2011-07-19T17:32:16-0400-s p-%Y-%m-%dT%H:%M:%S%z-s = p-2011-07-19T23:32:16+0200-s 优点: 没空间了。 考虑到TZ。 被人类阅读“不错”(仅日期对良好)。 可以由$(date --iso …

6
为我们的公司构建Linux网络-我从哪里开始?
这将是一个有点加载的问题。我在一家自1962年成立的公司中编程。很多事情,尤其是计算机/网络设备,已经过时了。让我再说一些背景。 该公司已经在运行Windows服务器。在服务器上,许多计算机的共享网络驱动器中都有文件,并且也有一些程序。这是授予公司范围内对会计和库存等事务的访问权限以及共享文件的方式。不幸的是,在任何设计中都没有强大的系统管理员参与其中。记帐系统正在Foxpro上运行。文件完全混乱。员工似乎通常都知道他们的工作方式,但是为了成长和扩展,我们需要快速掌握这一网络。我认为需要做一些事情: 关系数据库,可通过网络上的所有计算机访问,该数据库将存储: 文件(即图纸,报价,已完成项目的图片等) 员工(然后我们就可以开始执行计算机化的时间卡输入之类的工作) 发票,应收款项和库存 密码管理 作业追踪 我想在此数据库之上构建自定义应用程序,以提供所有功能,并构建API,使我们的网站能够与我们的内部事物进行交互。显然,在构建新系统时,必须保留现有系统。我来自网络背景……并且对Unix(我管理过许多服务于网站的服务器),PHP和前端开发非常满意。我想坚持使用那些我已经熟知的开源技术。 我心中最大的问题是从哪里开始。我是否要购买服务器机架并开始建立全新的网络?我是否准备好将每个人都推送到新网络,还是尝试以某种方式同时使用两者并逐渐从旧网络迁移? 我意识到这可能是一个耗时一年或更长时间的项目。我非常感谢您提供一些指导-系统设计的任何资源,入门方法等。我愿意投入工作-我只需要帮助就可以创建愿景。


13
Bash Shell脚本的脚本替代
我刚刚迁移到UNIX工作站。自从上学以来,我对Bash Shell脚本的记忆就消失了,并且我发现语法非常混乱。我想知道还有哪些其他脚本语言用于自动化任务。我听说过的两个最受欢迎的是Perl和Python。 现实世界商店中最广泛使用哪种脚本语言? 哪种脚本语言最类似于C / C ++语法? 还有我不知道的另一种脚本语言吗? 谢谢你的帮助, 史考特
16 unix  scripting 



1
使用tee捕获STDERR和STDOUT到文件
我不清楚使用捕获两者STDERR并捕获STDOUT到同一文件的最佳顺序是什么tee。我知道,如果我想通过管道传输到文件,则必须在重定向后映射文件句柄,即 find . >/tmp/output.txt 2>&1 这指示外壳程序先发送STDOUT到/tmp/output.txt,然后再发送STDERR到STDOUT(现在正在发送到/tmp/output.txt)。 尝试执行2>&1重定向文件之前的操作将不会获得预期的效果。 但是,当我想使用管道tee应该是: find . |tee /tmp/output.txt 2>&1 # or find . 2>&1 |tee /tmp/output.txt # ?
16 linux  unix  redirect  pipe 

3
程序文件位于/ usr / bin中,但不能使用
显然我的文件存在于 /usr/bin $ ls /usr/bin/ngrok /usr/bin/ngrok 但是,当我尝试chown它时,我收到一个错误 $ sudo chown my_user:users /usr/bin/ngrok chown: cannot dereference '/usr/bin/ngrok': No such file or directory 进一步尝试运行它也会失败! $ ngrok bash: ngrok: command not found $ sudo /usr/bin/ngrok sudo: /usr/bin/ngrok: command not found 这是怎么回事

3
Unix(或Linux)中是否有一种机制可以阻止正在进行的核心转储?
假设一个(非常大的)进程正在崩溃并转储核心,并且我们从其他信息(可能是断言消息,也许还有其他信息)中知道了原因。 有没有办法阻止核心转储完全生成,因为在这种情况下这很浪费? 例如,杀死-9的核心转储过程会中断corefile的生成吗? 显然,如果我们提前知道我们不希望进行核心转储,则可以适当地设置ulimit或使用操作系统的各种核心文件控制实用程序。 但是这个问题是关于“核心转储已经在进行中”的阶段。 (例如,假设我是/programming/18368242/how-to-bypass-a-2tb-core-dump-file-system-limit的请求者, 不想浪费5 -6 TB磁盘空间:))
15 linux  unix  dump 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.