Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi

DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
DJI Osmo Nano: la piccola fotocamera alla prova sul campo
DJI Osmo Nano: la piccola fotocamera alla prova sul campo
La nuova fotocamera compatta DJI spicca per l'abbinamento ideale tra le dimensioni ridotte e la qualità d'immagine. Può essere installata in punti di ripresa difficilmente utilizzabili con le tipiche action camera, grazie ad una struttura modulare con modulo ripresa e base con schermo che possono essere scollegati tra di loro. Un prodotto ideale per chi fa riprese sportive, da avere sempre tra le mani
FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III è la nuvoa fotocamera mirrorless pensata per chi si avvicina alla fotografia e ricerca una soluzione leggera e compatta, da avere sempre a disposizione ma che non porti a rinunce quanto a controllo dell'immagine.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-12-2003, 08:19   #21
Acrobat
Senior Member
 
L'Avatar di Acrobat
 
Iscritto dal: Nov 2001
Città: Menzoberranzan(ovvero Italia..)
Messaggi: 486
Quote:
Originariamente inviato da Ikitt_Claw
Ho affrontato un problema simile e ho trovato una (rozza) soluzione in python.
L'idea di fondo e` farsi una lista completa di tutti i file da backuppare, quindi rifarsi dal principio e calcolare le dimensioni di ognuno, includendo tutti i file in una sottolista; quando la sottolista raggiunge le dimensioni volute, la si cambia.
Alla fine, si backuppano individualmente le sottoliste ottenute...

Cioè il tuo prog crea una lista di tutti i files presenti nelle dir che vuoi backuppare,e una volta ottenuta questa esegue un controllo sulla dimensione di ognuno,e poi?
__________________
"L'immaginazione è più importante della conoscenza. La conoscenza è limitata, l'immaginazione abbraccia il mondo." Albert Einstein
Acrobat è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2003, 09:07   #22
Ikitt_Claw
Senior Member
 
Iscritto dal: Dec 2002
Città: /dev/urandom breed
Messaggi: 1689
Quote:
Originariamente inviato da Acrobat
Cioè il tuo prog crea una lista di tutti i files presenti nelle dir che vuoi backuppare,e una volta ottenuta questa esegue un controllo sulla dimensione di ognuno,e poi?
Probabilmente si fa prima a farlo (vedere, il codice) che a dirlo:

Questo che segue sostanzialmente fa quanto fa find:
Codice:
#!/usr/bin/python

VERSION=0.0.1

import sys, os, getopt

EXCLUDE="/etc/mybackup/exclude.lst"
CONFIG="/etc/mybackup/mybackup.conf"

def usage():
	print "%s is part of mybackup." %(sys.argv[0])
	print "%s generates file list to use with mkarchive, from a given path" %(sys.argv[0])
	print "usage: %s [opts] basedir" %(sys.argv[0])
	print "\t-h        : display this message"
	print "\t-V        : show version and exit"
	print "\t-f <file> : use <file> as configuration file, not default (%s)" %(CONFIG)
	print "\t-x <file> : optional exclude list (default: %s)" %(EXCLUDE)
							

def print_if(exclude, dirname, fnames):
	for f in fnames:
		good = 1
		cur = os.path.join(dirname, f)
		if(os.path.isdir(cur)):
			continue 
			# ci pensera` un'altra invocazione fatta da os.path.walk
		for x in exclude:
			if cur.find(x) != -1:
				good = 0
		if good:
			print cur
			
	

	
try:
	opts, args = getopt.getopt(sys.argv[1:], "f:x:h")
except getopt.GetoptError:
	pass

opts = dict(opts)
if opts.has_key("-V"):
	print "%s version %s" %(sys.argv[0], str(VERSION))
	sys.exit()

if not args or len(args) > 1 or opts.has_key("-h"):
	usage()
	sys.exit(0)
try:
	exclude = [ f[:-1] for f in file(opts["-x"], 'r').readlines() ]
except KeyError, IOError:
	exclude = []

basedir = args[0]
os.path.walk(basedir, print_if, exclude)
questo invece e` lo script che divide in set la lista omnicomprensiva dei file da backuppare:
Codice:
#!/usr/bin/python

VERSION=0.0.1

import sys, os, getopt

MAX_SIZE=long(700*1024*1024) # in bytes!
VERBOSE=False

def usage():
	print "%s is part of mybackup." %(sys.argv[0])
	print "%s generates segmentated file list to use with mkarchive, to create archive limited in size" %(sys.argv[0])
	print "usage: cat fulldirlist | %s [opts] segbasename" %(sys.argv[0])
	print "\t-h        : display this message"
	print "\t-v        : verbose execution"
	print "\t-f <file> : --UNRECOGNIZED-- use <file> as configuration file, not default"
	print "\t-s <size> : maximum segment size (default: %s)" %(str(MAX_SIZE))


def fmkname(name, seq):
	return name + '_' + str(seq)

try:
	opts, args = getopt.getopt(sys.argv[1:], "f:s:hv")
except getopt.GetoptError:
	pass

opts = dict(opts)
if opts.has_key("-V"):
	print "%s version %s" %(sys.argv[0], str(VERSION))
	sys.exit()

if not args or len(args) > 1 or opts.has_key("-h"):
	usage()
	sys.exit(0)
try:
	seg_size = long(int(opts["-s"]) * 1024 * 1024)
except KeyError:
	seg_size = MAX_SIZE
if opts.has_key("-v"):
	VERBOSE=True

basename = args[0]
seg_num = 0
cur_size = 0
lines = 0

f = file(fmkname(basename, seg_num), "w")
while 1:
	lines += 1
	l = sys.stdin.readline()[:-1]
	if not l:
		break
	try:
		s = os.stat(l)[6]
	except OSError:
		print("[%s] set #%s: unable to stat '%s', skipped..." %(sys.argv[0], str(seg_num), l))
	if (cur_size + s) > seg_size:
		# rotate file
		seg_num += 1
		cur_size = 0
		f.close()
		f = file(fmkname(basename, seg_num), "w")
	cur_size += s
	f.write(l + '\n')
	if VERBOSE:
		print("[%s] set #%s: including '%s'" %(sys.argv[0], str(seg_num), l))
if VERBOSE:	
	print "[%s] done: %s files in %s segments" %(sys.argv[0], str(lines), str(seg_num+1))
ribadisco e sottolineo che i due script sono rozzi, perfettibili e non largamente testati (e sotto licenza BSD, va).

PS: richiesto Python 2.2 o superiore o un po` di adattamento del codice...

Ultima modifica di Ikitt_Claw : 04-12-2003 alle 09:11.
Ikitt_Claw è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2003, 11:36   #23
PaTLaBoR
Senior Member
 
L'Avatar di PaTLaBoR
 
Iscritto dal: Jun 2003
Città: Lontano Lontano icq#:121214179 Skype:sniperpat [email protected] modalità:Fancazzamento continuo
Messaggi: 1682
"tar -cjvf backup.tar.bz2 /"
__________________
Snu snu
PaTLaBoR è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati Oracle AI World 2025: l'IA cambia tutto, a parti...
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1 Micron e millisecondi: la piattaforma ServiceNow...
Scende il prezzo del TV LG OLED AI B5 55...
Speciale smartphone, i più sconta...
OnePlus 15 debutta in Cina: nuovo design...
Elon Musk costa caro a Tesla: uno studio...
Battlefield REDSEC esce oggi: ecco l'ora...
5 robot aspirapolvere in forte sconto su...
Smembrate OpenAI: la richiesta del senat...
iPhone 16 a 689€: e ora che si fa? Dispo...
I robot aspirapolvere Neato diventeranno...
Lux e Discovery, AMD e il Dipartimento d...
Qualcomm entra nei datacenter: annunciat...
Amazon prepara il più grande lice...
Un post di Sean Duffy (amministratore ad...
SpaceX ha già lanciato oltre 135 ...
GeForce RTX 5060 Ti 8GB: non piace neanc...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:10.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v