我想做类似的事情:
find . -type f | xargs cp dest_dir
Run Code Online (Sandbox Code Playgroud)
但是xargs将dest_dir用作初始论证,而不是最终论证.我想知道:
xargs?一个可能的,但繁琐的替代方案是:
find . -type f | while read f ; do echo cp $f dest_dir ; done
Run Code Online (Sandbox Code Playgroud)
我不喜欢这个,因为cp会启动几十个进程.
我有一个印象(但没有找到它的文档)unittest WARNING 为所有记录器设置日志记录级别.我想要:
我怎样才能做到这一点?
出于测试目的,我使用普通的ssh命令行工具运行以下命令:
ssh user@host "nohup sleep 100 >> /tmp/xxx 2>&1 < /dev/null &"
Run Code Online (Sandbox Code Playgroud)
这在我的所有主机中都按预期工作:在后台创建一个睡眠过程,并且ssh立即完成.
我正在尝试使用Fabric在python中实现此功能.我最后run打电话了.这是Fabric日志记录报告的内容:
[user@host] run: nohup sleep 100 >> /tmp/xxx 2>&1 < /dev/null &
Run Code Online (Sandbox Code Playgroud)
这正是我所期待的.但是,如果我检查在我的主机中运行的进程,sleep 100则不是其中之一.更糟糕的是:问题只发生在我的一些主机上.
我还添加了一些信息,通过添加"\necho $!"来显示已创建的进程.要由Fabric运行的命令.这是报道的内容:
[user@host] run: nohup sleep 100 >> /tmp/xxx 2>&1 < /dev/null &
echo $!
[user@host] out: 30935
Run Code Online (Sandbox Code Playgroud)
我没有关于如何调试它的想法,因为Fabric报告已经创建了该进程,但我发现没有进程在另一端运行.syslog报告正在打开和关闭ssh会话:
Dec 6 09:12:09 host sshd[2835]: Accepted publickey for user from 67.133.172.14 port 37732 ssh2
Dec 6 09:12:09 host sshd[2838]: pam_unix(sshd:session): session opened for user user by (uid=0)
Dec 6 09:12:10 …Run Code Online (Sandbox Code Playgroud) 我有一个标准Ember main.js文件,它像这样开始:
this.App = Ember.Application.create({
LOG_TRANSITIONS: true,
VERSION: '1.0.0',
ready: function () {
console.log('App version: ' + App.VERSION + ' is ready.');
}
});
Run Code Online (Sandbox Code Playgroud)
运行此操作会jshint抱怨Ember未定义,在部署阶段,服务器中的此特定文件也是如此.因此,会显示许多错误消息.
Ember通过以下script标记在浏览器中可用index.html:
<script src="scripts/vendor/ember-1.0.0-rc.2.js"></script>
Run Code Online (Sandbox Code Playgroud)
我怎么能告诉jshint有关Ember?
我正在运行jenkins docker图像.启动时,它抱怨无法访问互联网.
这是我运行它的方式:
docker pull jenkins
mkdir jenkins-shared-volume
docker run -d -p 49001:8080 -p 50000:50000 -v jenkins-shared-volume:/var/jenkins_home -t --name jenkins jenkins
Run Code Online (Sandbox Code Playgroud)
然后jenkins实例在http:// localhost:49001上运行.但它有连接问题:
离线此Jenkins实例似乎处于脱机状态.
有关在没有Internet连接的情况下安装Jenkins的信息,请参阅脱机Jenkins安装文档.
您可以选择继续配置代理或跳过插件安装.
我的系统中没有代理(家用笔记本电脑).我想这可能是一个模糊的docker问题,但是:
难道我做错了什么?
只是为了确保docker容器确实可以直接访问互联网:
docker exec -it jenkins /bin/bash
jenkins@4ef4944a7cb7:/$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=44 time=29.859 ms
Run Code Online (Sandbox Code Playgroud)
运行连接到host网络的容器解决了问题,让jenkins访问互联网:
docker run -d --net host -v jenkins-shared-volume:/var/jenkins_home -t --name jenkins jenkins
Run Code Online (Sandbox Code Playgroud)
但是我无法映射端口:jenkins可以在http:// localhost:8080上直接访问,这可能是其他服务使用8080端口时的冲突源.
我试图在脚本中执行此操作:
» sudo -u postgres createuser -PE -s user1
Enter password for new role:
Run Code Online (Sandbox Code Playgroud)
我不想postgres以交互方式请求密码,所以我想这样做:
» sudo -u postgres createuser -PE -s user1 < /tmp/xxx
Run Code Online (Sandbox Code Playgroud)
其中/tmp/xxx包含新用户的密码.但它不起作用.如何使这个工作?
根据文档,这应该是相当简单的:我只需要定义handler404.目前我在做,在我的顶部urls.py:
urlpatterns = [
...
]
handler404 = 'myapp.views.handle_page_not_found'
Run Code Online (Sandbox Code Playgroud)
该应用程序已安装.相应的视图只是(目前我只想在404的情况下重定向到主页):
def handle_page_not_found(request):
return redirect('homepage')
Run Code Online (Sandbox Code Playgroud)
但这没有效果:显示标准(调试)404页面.
文档有点含糊不清:
handler404在哪里定义?文件说URLconf但是,究竟在哪里?我有几个应用程序,每个都有不同的urls.py.我能把它放进去吗?在顶部URLconf?为什么?这记录在哪里?django.http.Http404, django.http.HttpResponseNotFound,django.http.HttpResponse(用status=404)?这个小宝贝:
import urllib2
import simplejson as json
opener = urllib2.build_opener()
opener.addheaders.append(('Content-Type', 'application/json'))
response = opener.open('http://localhost:8000',json.dumps({'a': 'b'}))
Run Code Online (Sandbox Code Playgroud)
产生以下请求(如ngrep所示):
sudo ngrep -q -d lo '^POST .* localhost:8000'
T 127.0.0.1:51668 -> 127.0.0.1:8000 [AP]
POST / HTTP/1.1..Accept-Encoding: identity..Content-Length: 10..Host: localhost:8000..Content-Type: application/x-www-form-urlencoded..Connection: close..User-Agent:
Python-urllib/2.7....{"a": "b"}
Run Code Online (Sandbox Code Playgroud)
我不希望这样Content-Type: application/x-www-form-urlencoded.我明确地说我想要('Content-Type', 'application/json')
这里发生了什么?!
我在跑步:
python manage.py runserver localhost:44100
Run Code Online (Sandbox Code Playgroud)
这会将我重定向到https:
» http http://localhost:44100/
HTTP/1.0 301 Moved Permanently
Content-Type: text/html; charset=utf-8
Date: Mon, 05 Mar 2018 14:09:09 GMT
Location: https://localhost:44100/
Server: WSGIServer/0.1 Python/2.7.14
X-Frame-Options: SAMEORIGIN
Run Code Online (Sandbox Code Playgroud)
为什么/如何发生这种情况?什么设置控制是否Django接受http/ https?
我有一个可浏览的API:
restaurant_router = DefaultRouter()
restaurant_router.register(r'rooms', RoomsViewSet)
restaurant_router.register(r'printers', PrintersViewSet)
restaurant_router.register(r'shifts', ShiftsViewSet)
urlpatterns = patterns('',
url(r'^$', api_root),
url(r'^restaurant/$',
RestaurantView.as_view(),
name='api_restaurants_restaurant'),
url(r'^restaurant/', include(restaurant_router.urls)),
)
Run Code Online (Sandbox Code Playgroud)
在api_root我可以链接到命名路线:
@api_view(('GET',))
def api_root(request, format=None):
return Response({
'restaurant': reverse('api_restaurants_restaurant', request=request, format=format),
})
Run Code Online (Sandbox Code Playgroud)
或者我可以使用由生成的可浏览API DefaultRouter,如文档中所述:
我们正在使用的DefaultRouter类也会自动为我们创建API根视图,因此我们现在可以从views模块中删除api_root方法.
如果我想混合ViewSets和普通视图,并在同一个API根目录中显示所有内容,该怎么办?该DefaultRouter只列出ViewSet它控制秒.