Articles of Ubuntu

使用脚本将.csv文件加载到MySQL数据库中

我正在使用Ubuntu 10.04 LTS命令行来运行一个mySQL 5.1.61脚本,该脚本应该使用一个.csv文件并使用它的内容来填充我之前在脚本中创build的一个表。 这是脚本中的内容(csv有三列,名,姓和俱乐部): — Import club roster from csv. — Create a table to store club data. CREATE TABLE club_roster ( first_name VARCHAR(32), last_name VARCHAR(32), club VARCHAR(32) ) 其次是: — Put information from csv into table. LOAD DATA LOCAL INFILE '/complete/path/to/file.csv' INTO TABLE club_roster FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED […]

如何使用shell脚本检查两台机器中的文件夹?

我正在研究一个我需要在machineX上运行的shell脚本。 它将在其他两台机器( machineQ和machineQ此文件夹MAPPED_LOCATION中检查某个文件夹的格式为YYYYMMDD 。 所以在machineQ和machineQpath都是这样的 – /bat/testdata/t1_snapshot/20140311 在上面的文件夹path里面会有一些文件。 下面是我的shell脚本 – #!/bin/bash readonly MACHINES=(machineP machineQ) readonly MAPPED_LOCATION=/bat/testdata/t1_snapshot readonly FILE_TIMESTAMP=20140311 # old code which I was using to get the latest folder inside each machine (P and Q) dir1=$(ssh -o "StrictHostKeyChecking no" david@${MACHINES[0]} ls -dt1 "$MAPPED_LOCATION"/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] | head -n1) dir2=$(ssh -o "StrictHostKeyChecking no" david@${MACHINES[1]} ls -dt1 "$MAPPED_LOCATION"/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] […]

安装PECL失败,raphf.so找不到

我正在尝试在运行Ubuntu 14.10和php 5.5.9-1ubuntu4.11的VPS上安装MediaWiki 。 我使用本指南安装了php5。 现在我正在看MediaWiki安装文件。 它告诉我缺less可选的PECL:“警告:intl PECL扩展不可用于处理Unicode标准化,回落到慢的纯PHP实现。 phpinfo()证实了这一点(CTRL + F为“PECL”= 0命中)。 但是,如果我运行sudo pecl install pecl_http我得到一个错误: … checking for ext/raphf support… no configure: error: Please install pecl/raphf and activate extension=raphf.so in your php.ini ERROR: `/tmp/pear/temp/pecl_http/configure –with-http-zlib-dir=/usr –with-http-libcurl-dir=/usr –with-http-libevent-dir=/usr –with-http-libidn-dir=/usr' failed 与上一个SO上的问题相同的错误 。 我已经尝试了所有在答案中提到的事情,包括将三个“extension =”行添加到php.ini中。 试图安装raphf导致: sudo pecl install raphf pecl/raphf is already installed and is […]

通过cron运行django的python脚本

我有一个连接到外部主机的Python脚本,获取一些数据,并用数据填充Django数据库。 填充数据库的python脚本使用这些行来设置django环境: path = os.path.normpath(os.path.join(os.getcwd(), '..')) sys.path.append(path) from django.core.management import setup_environ import settings setup_environ(settings) 然后我有一个实际运行python脚本的shell脚本: export PYTHONPATH=$PYTHONPATH:/home/django/project_dir/ cd ~/project_dir/scripts/ ~/virtualenv/bin/python my_script.py 然后我的cronconfiguration,放在/etc/cron.d/ 0 1 * * * django ~/project_dir/scripts/my_script.sh > /var/log/django_cron.log 请注意,django项目有它自己的用户和虚拟环境。 当我以django用户login时,shell脚本运行正常。 但是cron不会运行! 我在日志文件中没有错误。 我相信这是非常简单的事情,但我只是没有看到它…

DNScaching为Ubuntu存储在哪里?

我在哪里可以findUbuntu文件系统上的实际DNScaching存储? 我有一个PHP脚本,它使用libcurl在同一个域上抓取几百页,并且设置为使用全局DNScaching,并将DNScaching超时设置为5分钟(300秒),这肯定会加快速度,由于几个呼叫由于名称parsing问题而挂起(对同一个域的名称parsing请求过多,服务器必须拒绝/悬挂某些)。 另一个问题是,是否有可能有一个永久存储位置的域到IP地址映射,所以你甚至不必在libcurl中使用DNScaching? 我可以使用/etc/resolv.conf存储一个外部域名并将其映射到它的IP地址,这是否工作? 我一直在web开发一段时间,所以我很熟悉的Linux命令行和搞乱configuration/设置,但我一直没能find这个问题的答案 我想我可以让实际的libcurl请求使用我从中提取的网站的IP地址,但我宁愿让它使用域名进行日志logging,以便我可以监视任何与请求挂起的问题

在虚拟环境中获取Django以通过Upstart运行

我一直试图通过文档和例子跋涉让我的Django运行在暴发户,所以我可以让它一直运行,但无法如此。 这是我的新贵的configuration文件位于/etc/init/myapp.conf : start on startup #expect daemon #respawn console output script chdir /app/env/bin exec source activate exec /app/env/bin/python /app/src/manage.py runserver 0.0.0.0:8000 > /dev/null 2>&1 & end script 当我键入sudo service myapp start ,控制台说它已经启动,但似乎没有运行。 是否有可能看到一些debugging输出,看看有什么问题? 我需要运行我的Django应用程序作为另一个用户 – 即djangouser 。 我怎么能这样做? (我一直在评论一些线路来testing服务出错的地方)。 这不是生产用途,而是我的内部开发使用。 谢谢。 编辑#1: 我在/app/run.sh两个命令都包装成一个简单的脚本 #!/bin/bash cd /app/env/bin source activate cd /app/src python manage.py runserver 0.0.0.0:8000 […]

如何将进程状态从睡眠状态更改为在Linux中运行?

我有一个python程序需要扫描一些大的日志文件来提取有用的信息。 在这个程序中,为了更好地利用服务器(运行Ubuntu 12.04 LTS,拥有64个内核和96 GB内存)的计算资源, 我创build了一个大小为10的进程池,并向这些池工作者应用服务器。 每个作业使用file.readlines()从几个大文件(每个大约file.readlines() ,共20个文件)中file.readlines() ,然后逐行分析以find有用的信息并将结果保存到字典中。 在所有文件被扫描和分析之后,结果字典被写入磁盘。 另外,在整个脚本中没有显式调用gc.collect() 。 我使用root账号在服务器上启动了这个程序,这些程序首先运行正常:这个程序的每个进程将占用大约3.8GB的内存,所以共有40GB 几个小时后, 其他用户启动另一个耗费内存的程序(也使用root帐户),它积极使用几乎所有的内存(占内存总量的99%),之后该程序被CTRL-Z中断, killall -9 process_name 但是,在这之后,我发现我的大部分池工的进程状态已经改为S,这些睡眠进程的CPU使用率降为0.根据man top : The status of the task which can be one of: 'D' = uninterruptible sleep, 'R' = running, 'S' = sleeping, 'T' = traced or stopped, 'Z' = zombie 我使用ps -axl命令来检查进程正在hibernate的内核函数的名称, 事实certificate这些poolworker进程在_fastMutex上_fastMutex 。 这种情况会持续很长一段时间(进程状态现在仍然是S),我不想重新启动我的进程再次扫描所有文件, 我怎么能改变这些进程从睡眠状态到运行?

编译问题在linux上

所以我在linux(Ubuntu)中使用emacs文本编辑器编写了下面的代码,它基本上应该将传入的分隔符中的string分开。 当我运行它segfaulted我运行它通过GDB,它给了我一个错误在strcpy(我没有调用),但可能在sprintf隐式完成。 我没有想到我做了什么错误,所以我启动到Windows,并通过Visual Studio运行它,它工作正常,我是新的Linux编写C,并知道问题是在While循环,我打电话sprintf()(哪是奇怪的,因为在循环之外的调用写入而不会导致错误)将令牌写入数组。 如果有人能告诉我哪里出错,我将不胜感激。 这是代码 /* split() Description: – takes a string and splits it into substrings "on" the <delimeter>*/ void split(char *string, char *delimiter) { int i; int count = 0; char *token; //large temporary buffer to over compensate for the fact that we have //no idea how many arguments will be passed […]

AVR ISP MKII,avrdude,Ubuntu 11.10

所以,我以前在Ubuntu上工作过。 但后来我升级到11.10。 现在,没有这样的运气。 注意:如果你仍然在搞这个在eclipse上工作,你可能想尝试这个命令行的东西…如果它不工作在这里,它不会在eclipse中工作。 我有这个错误: avrdude: stk500v2_command(): command failed avrdude: stk500v2_command(): unknown status 0xc9 avrdude: stk500v2_program_enable(): cannot get connection status avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. 我已经尝试过所有不同的configuration。 即:-B 1,10,1000, -F没有帮助,那么你只是得到000000或任何你的序列。 另外,我应该从下面的输出中清楚地看到,可以看到程序员,甚至是目标板,并读取其电压。 你也可以看到目标芯片复位。 (即:我已经testing了一些包含DB101的设备,你可以看到它何时重置) 完整的输出是这样的: > avrdude -c avrispmkII -P usb -p m1281 -B 100 […]

Linux的权限(LAMP)

我正在尝试在/ var / www中使用安全权限configurationLinux服务器。 我读过,你不应该由于各种原因将你的用户帐户添加到www-data组。 相反,最好(我被告知)要创build一个独立的开发人员组。 以下是我想到的: group add developers usermod -a -G developers my_account chown -R root:developers /var/www find /var/www/ -type d -exec chmod 775 {} \; find /var/www -type d -print | xargs chmod g+rwxs find /var/www/ -type f -exec chmod 664 {} \; 另外,编辑/ etc / apache2 / envvars并添加: umask 002 问题: […]